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é!

Sobre Fábio dos Reis (1213 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*