Ciência Nerd 1: Conversão decimal/binário e binário/decimal

conversao_chamada

Musiquinha indicada para ouvir enquanto lê esse artigo:

Números estão presentes em nossa vida o tempo todo. Altura, Peso, Massa, Velocidade, Distância, Litros, Valor, Hertz, mas ainda assim, conseguimos expressar muita coisa sem eles. Mas e um computador?

Caro Geek, se você não sabe como um computador entende qualquer tipo de informação, você, obviamente, é um Geek iniciante, e esse post vai abordar esse tema mais polêmico que mamilos.

Se você está iniciando em um curso de Sistemas de Informação, Análise de Sistemas ou Ciências da Computação, esse artigo é recomendadíssimo pra você, e vou simplificá-lo da melhor maneira possível.

Primeiramente, temos de entender a nossa forma de entender os números.
E tempos imemoriais (sim, não tenho memória deles), o homem aprendeu a contar com os dedos da mão. Como qualquer homem que tenha todos os membros em seus devidos lugares e não lhe sobra nenhum na mão, foi fácil chegar ao número 10, mas chegamos ao dez porque sempre ignoramos o zero, e começar a contar os dedos do zero não faz sentido mesmo. Daí, a base mais comum para nós é a base 10, de 0 a 9, e assim, evoluímos (menos quem faz quadradinho de 8).

Computadores conhecem apenas dois números: 0 e 1. Assim, 0 para o computador é 0, 1 é 1, 2 é 10, 3 é 11 e 10 é 1010. Você já deve ter ouvido falar disso, mas pode não ter entendido como representar o número 69 (ui) apenas com 0’s e 1’s.
Bem, se computadores entendem apenas 0 e 1, então sua base é binária, então, para se chegar a uma representação binária de um número decimal qualquer, basta dividi-lo por 2, até que não se consiga mais dividir.

divisao

Repare que dividindo por 2, sempre teremos como resto os números 0 ou 1.
Opa! Tô quase entendendo, Bial! Quer dizer que esses números que são o resto, na verdade, é a representação em base 2 – ou binária – do número 69, né?
Calma, jovem Padawan. Se você mantiver a ordem da divisão, as coisas não serão exatamente dessa maneira. Então, comofas?
Você deverá ordenar o resto das divisões na ordem inversa que fez as divisões – de trás para frente. Observe a cor do círculo em torno do resto de cada divisão e da ordenação correta.

divisao2

Assim, (69)10 é exatamente (1000101)2.

Legal, né? Mas e como fazer o processo inverso, ou seja, converter um número binário para decimal?
Vamos lá! Primeiro, a gente deve ter em mente que um número binário está na base 2, e isso será primordial para entender a lógica da coisa, pois vamos precisar de utilizar matemática. Mais especificamente, potências de base 2.

Para converter um número binário para número decimal, devemos primeiro indexar os números binários de trás para frente, começando do zero. Veja:

binario_indice1

Os índices servirão de expoentes para a base, que serão multiplicados pelos binários, mas antes, lembre-se que não se multiplica nada por zero, pois sempre vai dar…zero, então, não precisa nem perguntar o porquê de eu não fazer com os zeros. Confira:

conversao_binario-decimal

– Mas tio, não tem como fazer isso de maneira mais fácil?
-Claro! Por que não perguntou antes?

Ao invés de utilizarmos os índices do exemplo acima, vamos utilizar os índices da seguinte maneira: vamos sempre multiplicar por 2, conforme mostra a imagem a seguir:

conversao_binario-decimal-2

Daí, corta-se os zeros e soma-se os índices.

conversao_binario-decimal-3

Wooooooow! Easy as pie, hein?

Bem, agora que você já sabe como fazer essa conversão legal, se prepare para a próxima aula, onde ensinarei como representar números reais (negativos e positivos) em binário.

Até a próxima, Geeks!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s