collapse

* Posts Recentes

Como transformar um mosquito killer de tomada em um portátil? por jm_araujo
[20 de Setembro de 2018, 13:35]


Carregador para 18650 por brunus
[19 de Setembro de 2018, 23:16]


cabo utp cravar por brunus
[19 de Setembro de 2018, 23:15]


Keysight UXR 110GHz BW, 256GS/s, 10-bit Real-Time Oscilloscope por SerraCabo
[19 de Setembro de 2018, 20:26]


leitura de voltagens com o analogRead(A0) por jm_araujo
[16 de Setembro de 2018, 18:36]


BostonDynamics - Vai uma mãozinha? por josecarlos
[16 de Setembro de 2018, 11:26]


Comunidades Online de Drones por MAntunes
[09 de Setembro de 2018, 18:00]


Sorte do catano por Njay
[09 de Setembro de 2018, 16:51]


BUILD: Toolmaker's Clamp Thingy por TigPT
[08 de Setembro de 2018, 20:19]


Telescopio por Njay
[08 de Setembro de 2018, 15:27]

Autor Tópico: Converter Binário para Decimal  (Lida 3919 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline OxyGen

  • Mini Robot
  • *
  • Mensagens: 92
  • ET - UA
    • Curto.D ET Blog
Converter Binário para Decimal
« em: 13 de Maio de 2010, 15:21 »
Boas a todos...

Já tentei procurar aqui http://www.cplusplus.com/reference/clibrary/ por uma função que convertesse binário para decimal e vice-versa, mas não encontrei nem uma nem outra... Consegui fazer a função que converte decimal para binário mas não consigo fazer o contrário...

Deixo aqui o que fiz:

Código: [Seleccione]
unsigned int dec2bin(int dec)
{
 
  int bin=0, i=1;
  while(dec!=0)
  {
    bin+=(dec%2)*i;
    dec=dec/2;
    i*=10;
  }
  return bin;
}

Se alguém me pudesse ajudar a fazer a conversão binário para decimal agradecia...  Numeros apenas entre 0 e 9.

Cumps
« Última modificação: 13 de Maio de 2010, 15:25 por OxyGen »
OxyGen #

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.315
    • Tiago Rodrigues

Offline OxyGen

  • Mini Robot
  • *
  • Mensagens: 92
  • ET - UA
    • Curto.D ET Blog
Re: Converter Binário para Decimal
« Responder #2 em: 13 de Maio de 2010, 16:11 »
Pois... mas o meu problema é em relação ao código...

Código: [Seleccione]
unsigned int bin2dec(unsigned int num)
{
  char bin[num];
  int i = 0;
  int j = strlen(bin);
  int res =0;
 
  while(i!='\0')
  {
    res=res + bin[i]*2^j;
    i++;
    j--;
  }
  return res;
}

Tento fazer isto e dá-me too many arguments... Já tentei separar o res mas continua na mesma...
OxyGen #

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.548
  • Helpdesk do sitio
Re: Converter Binário para Decimal
« Responder #3 em: 13 de Maio de 2010, 17:02 »
Mete isto a substituir a tua função, funciona bem para numeros entre 0 e 99:
Código: [Seleccione]
unsigned int bin2bcd(unsigned int valBin)
{
return ((valBin / 10) << 4) + (valBin % 10);
}
Avr fanboy

Offline OxyGen

  • Mini Robot
  • *
  • Mensagens: 92
  • ET - UA
    • Curto.D ET Blog
Re: Converter Binário para Decimal
« Responder #4 em: 13 de Maio de 2010, 18:01 »
É impressão minha ou tu andas na Univ de Aveiro? Existe um guião das práticas de AC2 exactamente com essa função, mas o enunciado era:

Note: A conversão de um valor em hexadecimal para o correspondente em decimal pode ser
efectuada, de forma simplificada (se o resultado for igual ou inferior a 99), do seguinte modo:
OxyGen #

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.548
  • Helpdesk do sitio
Re: Converter Binário para Decimal
« Responder #5 em: 13 de Maio de 2010, 18:49 »
Sim, isso é do guião de AC2 e sim, sou tambem um ET de aveiro, hex ou binário é o mesmo, por isso essa função serve para o efeito.
Avr fanboy