Ir ao conteúdo
  • Cadastre-se

Problema com Conversão de binário para decimal!


cuccate

Posts recomendados

Olá, estou com um problema na conversão de um número binário para decimal!

Fiz uma função bem simples para converter de binário para decimal:


int BinToDec(char* text)
{

int num, i, n;

num = 0;
i = strlen(text);


for (n=0; n < i; n++)
{

if ( text[n] == '1' )
num = ( num * 2 ) + 1;

else if ( text[n] == '0' )
num = (num * 2 ) + 0;
}
i = 0;
n = 0;
return num;
}

No meu programa primeiro eu converto um numero decimal para binário, e depois pego esse binário, uso essa função, e converto para decimal de novo!


int main ()
{
int n;
char buffer[50];

n = 3245043245;

_itoa_s(n, buffer, 2);
n = BinToDec(buffer);

_itoa_s(n, buffer, 10);
printf("%s", buffer);
}

No meu programa não estou usando o printf para imprimir, pois estou usando a Windows API. Então, na hora de imprimir não aparece aquele valor da variavel 'n' , aparece um valor totalmente diferente!!! Porém se eu tirar 1 dígito da variável 'n', e deixar só com 9 dígitos, ele imprime o valor certo, como concerto isso?

Obrigado

Link para o comentário
Compartilhar em outros sites

Você declarou a variável 'n' como 'int'.

Variáveis do tipo 'int' armazenam inteiros numa faixa que vai de -2147483648 até 2147483647.

Você pode declarar tal variável como 'unsigned int'. Dessa maneira, a faixa irá de 0 até 4294967295. E o número 3245043245 estará compreendido neste intervalo.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...