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; }