Ir ao conteúdo
  • Cadastre-se

C ler um numero inteiro por binário (1011) e converter para base decimal


Posts recomendados

@herbertbahia@AdrianoSiqueira@devair1010@Mauro BritivaldoGalera me ajudem por favor nessa questão desta vez eu fiz 

Leia um número inteiro que representa um número binário (formado de zeros e uns). Imprima esse número convertido para base decimal.

#include <stdio.h>

int main(void) {
  int num;
  scanf("%d", &num);
  while(num != 0) {
    int digito = num%10;
    num = num / 10;

    printf("%d\n", digito);
  }
  return 0;
}

 

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

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

int main()
{
    char bin[100];
    unsigned long dec = 0;
    int i = 0;
    int s;
    fgets( bin, sizeof(bin), stdin);
    s = strlen( bin );
    while( s-- ) {
        if( bin[s] == '0' || bin[s] == '1' ) {
            dec = dec + pow(2, i++) * (bin[s] - '0');
        }
    };
    printf("\nDecimal Equivalent of Binary Number: \t %u\n", dec);
    return 0;
}

https://pt.stackoverflow.com/questions/152947/como-converter-binário-em-decimal

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Outra solução, aproveitando o código que você já desenvolveu:

#include <stdio.h>

int main(void) {
  int num;
  int pot=0;
  int dec=0;
  scanf("%d", &num);
  while(num != 0) {
    int digito = num%10;
    num = num / 10;
    dec += digito << pot;
    pot++;
  }
  printf("%d\n", dec);
  return 0;
}

 

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Matheus Freitas     pelo enunciado creio que você esteja querendo converter um número binário para decimal ,  mas esse enunciado está confuso ,  creio que assim estaria mais bem explicativo ,

Leia um número binário ( formado de zeros e uns ). e Imprima esse número convertido para base decimal .        

e sendo assim o código do @herbertbahia  está muito bom .

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

Boa dia!

 

Pelo que me insinua, a pergunta do enunciado era desse jeitinho, por exemplo:

1101
~~~^ Isto é o valor para um inteiro, 
ele é decimal e vale mil cento e um, 
será escaneado e salvo numa variável 
do seu tipo (int, long tanto faz)

 

                                                                                                          O EXERCICIO

Convertam-se os dígitos no VALOR daquele inteiro para binário, depois...

Mostre: 1 + 0 + 4 + 8

Em 18/06/2020 às 16:29, Matheus Freitas disse:

Imprima esse número convertido para base decimal.

                                                                                                E como resposta: 13

 

Ou seja, mil cento e um (1101) configurava|configura 13.

 

 

*** Às vezes o enunciado parece isso, às vezes não, então…

Quando assim, consulta-se o professor, né? 🙂 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Porque supostamente ele é a junção de dois outros:

Leia um número inteiro positivo, depois mostre quantos dígitos tem o número;

Leia um número inteiro positivo, depois mostre a potência da base 2 com esse número.

 

Junta-se os dois no liquidificador e tem-se:

Em 18/06/2020 às 16:29, Matheus Freitas disse:

Leia um número inteiro que representa um número binário (formado de zeros e uns). Imprima esse número convertido para base decimal.

 

Parece fácil?

É SÓ NÃO PENSAR D+

 

Expressa-se

...  a alocação dum inteiro;

...  a extração de um inteiro;

...  a alocação doutro inteiro como decimal;

...  a alocação doutro inteiro como potência;

...  uma repetição que, se o inteiro difere de zero, faça-se,

...  o modulo daquele inteiro por 10 e se diferente de 0, então,

...  adicione potência ao valor de decimal;

...  eleve a potência;

Fim da expressão.

 

ler_um_numero_inteiro_por_binario_(1011)_e_converter_para_base_decimal.c

/* ler um numero inteiro por binário (1011) e converter para base decimal   */
/*=================================[ 0-0 ]==================================*
                                  EXERCICIO

 Leia um número inteiro que representa um número binário
 (formado de zeros e uns). Imprima esse número convertido para base decimal.
                                                             17:34 07/05/2024
  *==========================================================================*/
 #include <stdio.h>

 int main (void)
 {
  printf ("%s","Entre uma configuração[ max. 10 digitos ]?>");
  int inteiro= 1111111111;
  scanf ("%10d",&inteiro);
  int decimal= 0;
  int potencia= 1;
  do
    {
     if (inteiro% 10)
        decimal+= potencia;
     potencia*= 2;
    }
  while (inteiro/= 10);
  printf ("%s%d","!>",decimal);
  putchar ('\n');
 }
/*===========================================================================*/

c'11 - gcc11.4

 

😉 — Somente isso, inicialmente, fica o file.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!