Papo binário - Parte 2

Construindo um conversor binário

Que tal construir um máquina que converte números binários (base 2) em decimais (base 10)? 

O objetivo ao final será criar esta máquina usando o micro:bit, você poderá inserir 0´s e 1´s, ao pressionar o Botão A e Botão B respectivamente, e a qualquer momento poderá pressionar o A + B para exibir o equivalente decimal do número digitado. Ao agitar tudo será reiniciado, e você poderá inserir uma nova sequencia binária para realizar a conversão.

Primeiro, precisamos entender como é o padrão que nos permitirá realizar a conversão em tempo real.

Iremos realizar a conversão do binário 10001 para seu correspondente decimal.

Vamos criar uma variável VlrDecimal, esta variável sempre armazenará o último resultado do cálculo, por isso o valor inicial será  0…

Algo muito importante é que iremos realizar as operações de cálculo seguindo cada bit, da esquerda para a direita, ou seja, do bit mais significativo (aquele que estando ligado vale mais ou possui maior peso) para o menos significativo (aquele que estando ligado, vale menos ou possui menor peso).

Passo 1: realizar um cálculo segundo uma fórmula que sempre usará o último valor que está armazenado na variável VlrDecimal. Ao final do cálculo, a variável VlrDecimal irá receber este novo valor calculado, neste caso o valor 1, ou seja, era 0, agora VlrDecimal vale 1.

Passo 2: Novamente iremos utilizar o valor que está armazenado na variável VlrDecimal no cálculo, porém, a fórmula irá mudar.  Não há mais a adição de 1 no cálculo. Perceba que temos então dois padrões de fórmula, quando estivermos calculando um bit ligado, e quando estivermos calculando um bit desligado. Agora a variável VlrDecimal valerá 2.

Passo 3: iremos utilizar o valor 2, armazenado na variável VlrDecimal no cálculo, tendo como resultado o valor 4, nosso novo valor para a variável VlrDecimal. Assim como no passo anterior, não iremos adicionar 1 ao cálculo.

Passo 4: usamos o valor da variável VlrDecimal no cálculo, resultando no valor 8, em seguida atualizamos o valor da variável. Novamente, como estamos calculando o binário 1, não adicionamos 1 na operação.

Passo 5: chegamos ao último passo, “pegamos” o valor armazenado na variável VlrDecimal (8) e aplicamos no cálculo. Como este cálculo se refere a um binário ligado (1), então precisamos adicionar 1 à operação, como resultado temos 17, atualizamos VlrDecimal com este valor. 

Como é o último binário a ser calculado, chegamos ao final da operação, o equivalente em decimal para o binário 10001 é 17.

Observe na figura ao lado como são as equações que usamos, este é o padrão que será adotado quando estivermos criando o nosso programa. Vamos então montar como será o algoritmo para nossa calculadora, baseado na necessidade descrita no início.

Passo 1: Precisamos criar duas variáveis, uma para armazenar o VlrDecimal, e outra (VlrBinario) para armazenar o valor binário, que iremos digitar usando o Botão A e o Botão B. A variável VlrBinario irá iniciar como vazio, pois será um texto, e VlrDecimal receberá inicialmente 0, pois é numérica.

Passo 2: Ao pressionar o Botão A, iremos unir a variável VlrBinario com “0”. Porque iremos unir e não somar? Simples, porque VlrBinario será um texto e não um valor numérico. Em seguida iremos mostrar o valor da variável VlrBinario no display. Agora precisamos definir o novo valor para a variável VlrDecimal (lembre-se que a equação para binário 0, não fazemos adição).

E por fim, limpamos a tela.

Passo 3: O algoritmo do Botão B é muito similar ao realizado para o Botão A

Algumas diferenças: 

  • iremos unir o número 1 à variável VlrBinario;
  • há uma pequena mudança na expressão de cálculo, adicionamos 1 ao cálculo.

O restante é tudo igual. 🙂

Passo 4: Ao pressionar os Botão A + Botão B, iremos mostrar o valor da variável VlrDecimal. Esta é uma ação que pode ser feita a qualquer momento.

Passo 5: Por fim, temos o algoritmo para reiniciar as variáveis com os mesmos valores iniciais. Com estas ações, podemos realizar nova operação de conversão, sem a necessidade de pressionar o botão de reset do micro:bit.

Compartilhamos um vídeo com o passo-a-passo da programação e em seguida compartilhamos a programação finalizada…

Rolar para cima