Programa que converte um número de binário para decimal em C++
Conversão de um número binário para decimal em C++
Fala pessoal! No artigo passado escrevemos um programa que permitia converter um número decimal em binário, usando C++. Agora vamos criar um pequeno programa que permite realizar o processo inverso – a conversão de um número binário, fornecido pelo usuário, em seu equivalente decimal, também usando a linguagem C++.
Vamos ao código.
Código – Converter binário em decimal com C++
#include<iostream> #include<cmath> using namespace std; int main() { int num, resto, base = 2, soma = 0, i = 0; // Solicita ao usuário que digite o número binário a ser convertido cout << "CONVERSÃO DE BINÁRIO PARA DECIMAL \n"; cout << "Digite o número em binário e pressione ENTER: "; cin >> num; // Laço onde é realizada a conversão do número binário em decimal while (num > 0) { resto = num % 10; // Calcula o dígito binário menos significativo soma = soma + (resto * pow(base, i)); // Converte e acumula o dígito binário em decimal num = num / 10; // Remove o dígito binário processado i += 1; // Incrementa o expoente da base (2) } // Exibe o número decimal resultante cout << "\nNúmero convertido para decimal: " << soma; return 0; }
Resultado
CONVERSÃO DE BINÁRIO PARA DECIMAL Digite o número em binário e pressione ENTER: 1001111 Número convertido para decimal: 79
Funcionamento do Código
O programa inicia incluindo as bibliotecas iostream e cmath para permitir entrada/saída de dados e realizar cálculos matemáticos, respectivamente. Também usa using namespace std para evitar a necessidade de usar std:: antes de funções como cin e cout.
O programa então declara algumas variáveis, incluindo num para armazenar o número binário inserido pelo usuário, resto para armazenar o dígito binário atualmente sendo processado, base, que é 2 (pois estamos convertendo de binário para decimal), soma para acumular o valor decimal resultante e i para controlar o expoente da base.
Na sequência é solicitado que o usuário insira o número binário que deseja converter.
O programa entra então em um laço while que continuará até que o número binário (num) seja maior que zero.
Dentro esse laço, ele calcula o dígito binário menos significativo usando a operação num % 10. Isso resulta em 0 ou 1, que é o dígito binário atual.
O dígito binário é convertido em decimal e adicionado à variável soma usando a fórmula soma = soma + (resto * pow(base, i)). Aqui, resto é o dígito binário, base é 2 (base binária) e i é o expoente que começa em 0 e aumenta a cada iteração.
Logo após o número binário (num) é dividido por 10 (num = num / 10) para remover o dígito binário que foi processado.
Então, o expoente da base (i) é incrementado em 1 (i += 1) para lidar com o próximo dígito binário.
Após a conclusão do laço de repetição, o programa exibe o número decimal resultante.
Finalmente, o programa retorna 0, indicando que a execução foi bem-sucedida.
É isso aí! Nos próximos tutoriais veremos outros tipos de conversões de bases numéricas usando a linguagem C++, como a conversão de hexadecimal em decimal e binário e vice-versa.
Até!
Escreva um comentário