Ir para conteúdo
Fórum Script Brasil
  • 0

Binario para Decimal


Lippi

Pergunta

Boa tarde amigos, estou com uma duvida que creio que deve ser simples para os mais experientes.

Gostaria de converter um numero binario informado pelo usuario para decimal.

sei que o calculo é:

Ex:

1010= 10

1x2^3+0x2^2+1x2^1+0x2^0

até consegui fazer um codigo com a pessoa informando digito por digito.

Porém gostaria que a pessoa informasse o numero de uma vez, ai que eu me enrosco.... não sei depois como pegar apenas um digito por vez para calcular.

Tentei receber esse numero binario como uma string e depois dentro de um laço ir convertendo char por char para int usando "atoi", porem com atoi so consegui converter a string inteira..char por char dava erro de compilação.

Agradeço a ajuda.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
Boa tarde amigos, estou com uma duvida que creio que deve ser simples para os mais experientes.

Gostaria de converter um numero binario informado pelo usuario para decimal.

sei que o calculo é:

Ex:

1010= 10

1x2^3+0x2^2+1x2^1+0x2^0

até consegui fazer um codigo com a pessoa informando digito por digito.

Porém gostaria que a pessoa informasse o numero de uma vez, ai que eu me enrosco.... não sei depois como pegar apenas um digito por vez para calcular.

Tentei receber esse numero binario como uma string e depois dentro de um laço ir convertendo char por char para int usando "atoi", porem com atoi so consegui converter a string inteira..char por char dava erro de compilação.

Agradeço a ajuda.

salve o q o usuario digitar em uma string

depois converta separadamente cada posição da string para int e trabalhe com eles separados depois some.

na stdlib.h tem funçõer de converção!

Link para o comentário
Compartilhar em outros sites

  • 0

então amigo, como voce pode ler ali em cima eu já tentei isso, a função que voce se refere é o "atoi" converte string para int.

Porem da erro de compilação quando informo a posição , exemlo "num=atoi(bin[cont])", agora se eu informo"num=atoi(bin)" ele compila sem problemas...só que assim ele converteu a string toda e não apenas um char por vez .

Só para esclarecer aquele cont é porque eu tinha colocado dentro de um laço.

Link para o comentário
Compartilhar em outros sites

  • 0
então amigo, como voce pode ler ali em cima eu já tentei isso, a função que voce se refere é o "atoi" converte string para int.

Porem da erro de compilação quando informo a posição , exemlo "num=atoi(bin[cont])", agora se eu informo"num=atoi(bin)" ele compila sem problemas...só que assim ele converteu a string toda e não apenas um char por vez .

Só para esclarecer aquele cont é porque eu tinha colocado dentro de um laço.

faz assim

novastring[0] = bin[cont];

novastring[1] = '\0';

num=atoi(novastring);

Link para o comentário
Compartilhar em outros sites

  • 0

NOssa que dificuldade... :huh:

Converte um desconverte outro...credo pessoal...

::::Programa Binario::::

Início
Um número binario: 1010

numero <- 1010
x <-0

Enquanto o numero for maior ou igual a 10
     resto <- numero mod 10
     resultado <- resultado + 2^x * resto
     x<- x+1
     numero <- numero/10
fim Enquanto

resultado <- resultado+2^x * numero

Fim Programa

O número binario é um inteiro grande....divida por 10 para pegar o resto, ou seja, o primeiro dígito:

1010 % 10 = 0

101 % 10 = 1

10 % 10 = 0

No final é só pegar o número final: 10/10 = 1

Oras boletas...

Link para o comentário
Compartilhar em outros sites

  • 0
Boa tarde amigos, estou com uma duvida que creio que deve ser simples para os mais experientes.

Gostaria de converter um numero binario informado pelo usuario para decimal.

sei que o calculo é:

Ex:

1010= 10

1x2^3+0x2^2+1x2^1+0x2^0

até consegui fazer um codigo com a pessoa informando digito por digito.

Porém gostaria que a pessoa informasse o numero de uma vez, ai que eu me enrosco.... não sei depois como pegar apenas um digito por vez para calcular.

Tentei receber esse numero binario como uma string e depois dentro de um laço ir convertendo char por char para int usando "atoi", porem com atoi so consegui converter a string inteira..char por char dava erro de compilação.

Agradeço a ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0
O número binario é um inteiro grande....divida por 10 para pegar o resto, ou seja, o primeiro dígito:

1010 % 10 = 0

101 % 10 = 1

10 % 10 = 0

No final é só pegar o número final: 10/10 = 1

Oras boletas...

tsc tsc..

errou ae, meu caro!

1010 / 10 = 101 resto 0

101 / 10 = 10 resto 1

10 / 10 = 1 resto 0

1 / 10 = 0 resto 1

é só pegar os 'restos' mesmo!

esse é o certo

Editado por hyeNna
Link para o comentário
Compartilhar em outros sites

  • 0

essa de converter char por char é a mais dificil

porem

eu não sei qual é a sua necessidade

então

vai ae:

//============ FUNÇÃO PARA CONVERTER CARACTERES STRING, EM NÚMEROS =============
void converte_Str_Num( char *vetor, int *valor ){
    
    int i;
    
    tamanho = 0;
    i = 0;
    while ( vetor[i] != ' * ' ){  //*aqui dentro é um barra zero, não to conseguindo por!
          
          if ( vetor[i] == '1')
               valor[i] = 1;
          
          else if( vetor[i] == '2')
               valor[i] = 2;
          
          else if( vetor[i] == '3')
               valor[i] = 3;
          
          else if( vetor[i] == '4')
               valor[i] = 4;
          
          else if( vetor[i] == '5')
               valor[i] = 5;
          
          else if( vetor[i] == '6')
               valor[i] = 6;
          
          else if( vetor[i] == '7')
               valor[i] = 7;
          
          else if( vetor[i] == '8')
               valor[i] = 8;
          
          else if( vetor[i] == '9')
               valor[i] = 9;
          
          else if( vetor[i] == '0')
               valor[i] = 0;
    
    i++;          
   }
  
   tamanho = i;
      
}

bem,

como a funcao trabalha com ponteiros

o que você só precisa fazer é mandar o vetor[string] e o vetor[numerico]

que você quer manipular

EX: converte_Str_Num( aqui_eh_a_sua_string, aqui_eh_o_vetor_onde_vc_salvara_os_numeros );

um detalhe muito importante

scanf, gets e fgets

como é q você ta salvando essa string?

cada um tem uma forma diferente de sinalizar o final de uma string

e é isso q vai dá problema

Editado por hyeNna
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...