Ir ao conteúdo
  • Cadastre-se

Converter Numeros Binários Em Decimais Em C


CLAITOK

Posts recomendados

aí galera ,

tô passando sufoco pra fazer um código fonte que

calcule a conversão de um numero binário de 8 bits para decimal.

Além do valor numérico o programa, quando executado, deve retornar o numero por extenso!

Por exemplo:

Entre com um nro em binario (até 8 bits): /

/solicita ao usuário a entrada

11111111

Resultado:

//saída do programa

255 (duzentos e cinquenta e cinco)

eu já fiz uma parte aqui , mas tá incompleto

e no minimo errado


#include <string.h>
#include <stdio.h>
#include <math.h>

int i,dec,nbinario[8];
main(){
i=0;
dec=0;
printf("\nDigite um numero binario de 8 bits ");
scanf("%d",&nbinario);
/* faz a conversao de binario para
decimal , usando multi. e eleva a potencia,
e depois joga o resultado da soma de todas
as casas numa string..*/
for (i=7;i<0;i--)
{
nbinario[i] = nbinario[i] * 2;
nbinario[i] = ######(nbinario[i],i);
dec=dec + nbinario[i];
}
printf("%i",dec);
scanf(" ");}

ele está sempre me retornando ZERO , o que eu fiz errado???

tO MEIO NA DÚVIDA COM AQUELE SCANF. MAS me digam o que fiz errado!

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por CLAITOK@18 abr 2004, 23:59

scanf("%d",&nbinario);

Acho que o erro tá no scanf mesmo porque o vetor numerico é diferente do vetor de caracteres...o vetor numerico lê cada posição de uma vez.

EX: um vetor de dois elementos

for(int i=0;i<2;i++)

scanf("%i",vet);

no caracter isso não acontece...pois cada caracter é uma posição, ou seja, pode-se digitar uma frase toda só com um scanf.

EX: um frase

gets(frase); //com a string.h

ou

scanf("%s",frase);//com stdio.h

OBS: em p o w(2,(TAMANHO-1)-i)

'p o w' é junto...não coloquei porque aparecia um monte de ###### ^_^

#include <stdio.h>

#include <math.h>

#include <string.h>

void main( void )

{

  int TAMANHO,decimal=0;

  char *binario;

  gets(binario);

  TAMANHO = strlen(binario);

  for(int i=0;i<TAMANHO;i++)

           decimal = (binario-48)*p o w(2,(TAMANHO-1)-i) + decimal;

  printf("%i",decimal);

}

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...