Nesta aula vamos aprender como converter um número decimal em binário. Na computação é muito comum ouvirmos falar sobre a base numérica binária. Se você pensa em fazer algum curso de tecnologia é bem provável que em alguma disciplina você tenha que converter números decimais em sua forma binária. Então, nesta aula você terá uma amostra do que te aguarda. Nós aprenderemos a converter um número inteiro na base decimal em sua forma binária.
O processo para “traduzirmos” um número inteiro decimal em seu correspondente binário é bem simples. Basicamente, precisamos fazer uma série de divisões por 2 até obtermos resto 1.
Imagine que desejamos converter o número 3 para a base binária. Vamos fazer sucessivas divisões por 2 até obtermos o resultado 1. No caso do 3 será apenas uma divisão.
| Resultado | Resto | |
| 3 / 2 | 1 | 1 |
Finalizada a divisão, o número 3 em binário é formado pelo último resultado seguidos dos restos, assim: 11
Para deixar bem claro como funciona este processo, vamos agora converte o 4 para binário.
| Resultado | Resto | |
| 4/2 | 2 | 0 |
| 2/2 | 1 | 0 |
O número 4 em binário é formado pelo último resultado seguido pelos restos, assim: 100
Vamos agora traduzir o número 26
| Resultado | Resto | |
| 26/2 | 13 | 0 |
| 13/2 | 6 | 1 |
| 6/2 | 3 | 0 |
| 3/2 | 1 | 1 |
O número 26 em binário é formado pelo último resultado (igual a 1) seguido pelos restos, assim: 11010
Neste processo, perceba que o número binário inicia no final do processo de divisão. Quando obtemos o resultado 1, este 1 é o primeiro dígito da resposta em binário, seguido pelos restos.
Obtemos o mesmo resultado se fizermos mais uma divisão e pegarmos apenas os restos, assim:
| Resultado | Resto | |
| 26/2 | 13 | 0 |
| 13/2 | 6 | 1 |
| 6/2 | 3 | 0 |
| 3/2 | 1 | 1 |
| 1/2 | 0 | 1 |
Agora temos um ponto de parada claro: quando resultado for zero!
Como estamos trabalhando com recursão, quando n for zero basta imprimir zero (é nosso ponto de parada). Contudo, quando n for diferente de zero, faremos a chamada recursiva para o resultado da divisão de n por 2 e, na sequência, imprimiremos o resto da mesma divisão. Ao final teremos nossa resposta impressa na tela.
Código em C para conversão de um número inteiro decimal em binário
#include <stdio.h>
#include <stdlib.h>
/*
Escrito por Wagner Gaspar
Março de 2021
Aula 164: Faça um procedimento recursivo para converter um número decimal n para sua forma binária.
*/
void binario(int n){
if(n == 0)
printf("%d", n);
else{
binario(n/2);
printf("%d", n % 2);
}
}
int main () {
int n;
printf("Digite um valor decimal: ");
scanf("%d",&n);
binario(n);
return 0;
}
