Imprimindo o equivalente decimal de um número binário. Leia um inteiro contendo apenas 0s e 1s (ou seja, um inteiro ‘binário’) e imprima seu equivalente decimal. [Dica: use os operadores de módulo e divisão para apanhar os dígitos do número ‘binário’ um de cada vez, da direita para a esquerda. Assim como no sistema numérico decimal, em que o dígito mais à direita tem um valor posicional de 1, e o próximo dígito à esquerda tem um valor posicional de 10, depois de 100, depois de 1.000, e assim por diante, no sistema binário, o dígito Imprimindo o equivalente decimal de um número binário mais à direita tem um valor posicional de 1, o próximo dígito à esquerda tem um valor posicional de 2, depois de 4, depois de 8 e assim por diante. Assim, o número 234 pode ser interpretado como 4 * 1 + 3 * 10 + 2 * 100. O equivalente decimal do binário 1101 é 1 * 1 + 0 * 2 + 1 * 4 + 1 * 8 ou 1 + 0 + 4 + 8 ou 13.]

Passo 1

Olá, tudo bem? Ficou com dúvida nesse exercício? Vem que eu te ajudo!

O exercício pede para que você crie um programa que leia um número inteiro binário e imprima seu equivalente decimal.

Passo 2

Primeiramente, vamos declarar as variáveis, que será: num, vet_bin[MAX], i e j. Depois é necessário usar a função “printf” e “scanf” para solicitar o inteiro binário do usuário.

Passo 3

Agora, vamos usar o while para aplicar a fórmula dada pelo enunciado, dessa forma fica:

while(num > 0)

{

vet_bin[i] = num % 2;

i++;

num = num / 2;

}

Depois, nós usamos o “printf” para imprimir os resultados obtidos.

Resposta

Dessa forma, para obter o resultado esperado, o seu programa deve está da seguinte forma:

#include

#define MAX 50

int main()

{

int num;

int vet_bin[MAX];

int i = 0, j;

int aux_num = num;

printf("Insira um inteiro binário:\n");

scanf("%d", &num);

while(num > 0)

{

vet_bin[i] = num % 2;

i++;

num = num / 2;

}

printf("%d em binario: ", aux_num);

for(j = i - 1; j >= 0; j--)

printf("%d", vet_bin[j]);

printf("\n");

return 0;

}

Espero ter ajudado!