Ir ao conteúdo

Posts recomendados

Postado

@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
Postado
#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
Postado

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
Postado

@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
  • 3 anos depois...
Postado

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
Postado

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!