Outubro 22, 2021

Números binários

Os números binários é a matemática principal para a eletrônica digital, e tudo que se relaciona a ela como computação e programação. Na eletrônica digital, como foi falado em artigos anteriores, vamos trabalhar apenas com duas formas de energia e que tem vários nomes para representá-la. Liga/desliga, verdadeiro/falso, 0/1 entre outros. E nada melhor para ajudar nesse mecanismo que um código numérico que tivesse apenas duas opções. Sistema numérico de base 2 aperfeiçoado pelo alemão Gottfried Wilhelm Leibniz, e depois usado por George Boole para elaborar as lógicas booleanas que é toda a estrutura da eletrônica digital.

Todo curso de eletrônica digital e programação começa com o ensino dos números binários, por isso resolvi fazer um artigo para que o leitor do site possa entender bem a respeito da base de eletrônica digital, para que possa se desenvolver com melhor desempenho no ramo.

Entendendo a estrutura dos números binários

Os números binários possuem base 2 e para entender como a questão da base funciona, vamos mostrar como a estrutura de base 10 funciona (já que é um sistema numérico universal que todos estão situados). Nos números decimais (de base 10) temos 10 códigos que representam uma quantidade específica como o 0, 1, 2, 3, 4, 5, 6, 7, 8 e o 9. Mas quando precisamos de um valor maior que esse, atribuímos outro código à esquerda do nome, que aprendemos na escola que são as casas decimais e depois que representamos com os dez códigos já existentes passamos para a casa da centena e depois para a de milhar e assim sucessivamente. Para sabermos o peso da casa decimal trabalhamos com números exponenciais de base 10 (no caso dos números decimais). Temos então 10 ^x onde o número de x é igual a quantidade de casas contando da direita para a esquerda e seu resultado é multiplicado pelo valor encontrado dentro da casa podendo ser de 0 a 9. Sendo assim a primeira casa que chamamos de unidade representa 10^0 que é igual a 1. Logo, nosso valor será de peso 1. O segundo será multiplicado por 10 já que 10^1 é igual a 10. E assim sucessivamente.

 Da mesma forma acontece com os números binários, a diferença é que nele temos apenas 2 códigos (por isso é chamado de base 2). O valor de menor peso vai ser encontrado sempre à direita e o de maior peso sempre à esquerda, mas no caso dos números binários chamaremos essas “casas de bits” e o bit de menor tamanho é chamado de LSB (sigla em inglês para dizer menor bit significativo)  e MSB  para o bit mais significativo. E assim como nos números decimais para identificar o peso do bit iremos trabalhar com expoente de 2 ^x onde o x é o número de bits.

Para facilitar o trabalho no ramo da computação, foi usado o termo byte que representa uma sequência de 8 bits. Essa estrutura de potência é importante entender para ficar mais fácil a conversão de números com bases diferentes que é o caso da conversão decimal/binária que veremos mais adiante nesse artigo. Assim como os números decimais e binários, existem outras bases diferentes dessas que usamos, um exemplo são os números hexadecimais, também usados no ramo da computação e programação, e ele trabalha com a base 16.  

Conversão de números decimais para binários e de números binários para decimais

Como se trata de números com estrutura de base podemos fazer a conversão de um número de uma base para outra base. Como os números decimais estão presentes na vida de todos nós, é bastante comum pessoas do ramo da eletrônica digital trabalhar com a conversão dos números decimais para os números binários (número usado pelas máquinas) e converterem os números binários para decimais.  

Convertendo números decimais para binários:

Vou apresentar para vocês dois métodos para conseguir a conversão de números decimais para binários. A primeira é bem simples iremos fazer a divisão do número por 2 até que seu resultado fique um e pegaremos o resto das divisões para descrever nosso número de forma binária.

Exemplo:

Nesse caso o LSB (bit menos significativo) vai ser o valor da última divisão, e o MSB (bit menos significativo vai ser o primeiro resto das divisões. Dessa forma podemos dizer que o numero 11001 em binário equivale ao numero 19 em decimais.

Uma outra forma que podemos fazer essa conversão é desenhar casa para representar cada bit que iremos analisar. Vamos colocar os pesos de cada bit conforme vimos na estrutura até chegarmos ao peso igual ou menor mais próximo do valor que desejamos converter. Depois iremos colocar valor 1 em todo numero que somando chegará no valor que estamos querendo converter. No exemplo a seguir ficará mais fácil do leitor entender e acompanhar o raciocínio.  

 Exemplo

Iremos usar o número 5 então vamos colocar a representação exponencial de cada bit e em baixo iremos colocar os resultados dessa potência.

2^22^12^0
421

Como sabemos que 4 é um valor menor mais próximo que o 5 vamos colocar ele em nossa soma, então iremos atribuir valor 1 para esse bit.

2^22^12^0
421
1  

Indo para o próximo peso de bit temos o número dois, se somarmos o número 2 ao número 4 teremos 6 que é maior do que o valor que desejamos então não colocaremos ele em nossa soma, por isso vamos atribuir um 0 nesse bit

2^22^12^0
421
10 

Agora vamos para o último bit que tem peso 1, se colocarmos em nossa soma teremos o valor exato que precisamos logo o bit recebera o 1. Ficando então o número 5 em forma binária 101. 

2^22^12^0
421
101

Obs: caso o valor desejado seja encontrado antes do LSM (menor bit significativo) basta você completar os bits restante da soma com 0. É o caso do 4 que terá apenas o terceiro bit com valor 1 e os demais com valor 0.

conversão inversa

  • Para a conversão inversa é o mesmo que acabamos de ver, mas fazendo o sentido inverso.

Primeiro escrevemos o número binário em bits.

1011

Em seguida escrevemos o peso deles

2^32^22^12^0
8421
1011

E por último fazemos a soma de cada peso que tenha em seu bit o número um (8 + 2 + 1 = 11). Assim conseguimos identificar que o numero1011 em número decimal é 11.

Deixando os números binários negativos.

Existem vários métodos para se ter um número binário no formato negativo. Mas nesse artigo iremos ver apenas dois deles. São eles sinal magnitude, muito usado em programação principalmente para uso de números flutuantes e complemento de 2 usado amplamente para calcular números inteiros 

Deixando os números binários negativos.

Existem vários métodos para se ter um número binário no formato negativo. Mas nesse artigo iremos ver apenas dois deles. São eles sinal magnitude, muito usado em programação principalmente para uso de números flutuantes e complemento de 2 usado amplamente para calcular números inteiros 

Sinal magnitude

Nesse método iremos representar o sinal com os mesmos valores de bits sendo 0 para representar números positivos e 1 para representar números negativos, ele sempre será colocado no MSB (bit mais significativo), então se trabalhamos com bytes teremos o bit 8 apenas para indicar qual o sinal daquele valor.

Exemplo:

Número decimalNúmero binário
 30011
-31011

Obs. Nesse caso usei apenas 4 bits.

Complemento de 2

Na teoria iremos utilizar dois passos para se ter o valor negativo do número binário. Sendo o primeiro complemento a troca de valores dos bits conforme o valor positivo (sempre que tiver numero 1 vai ficar numero 0 e sempre que tiver numero 0 vai mudar para 1) e então o segundo complemento é adicionar a esse valor 1.  Mas existe um macete para deixar mais fácil e claro o complemento de 2.

Você vai seguir os bits da direita para a esquerda e vai fazer a mudança de valor apenas depois que encontrar um bit que tenha valor 1.

Se temos o número 0010 (2), para converter ele em um valor negativo repetirá os dois últimos bits pois o primeiro é 0 e o segundo é o 1 que determina o inicio da mudança. Os dois próximos bits trocaremos seus valores de 0 para um. Então no caso do numero -2 em forma binária de complemento de 2 teremos 1110. 

Assim como outros métodos de negativo binário, no complemento de 2 o MSB sempre vai trazer o valor que representa o sinal do número sendo 0 positivo e 1 negativo. Segue uma tabela com valores que podemos representar usando 4 bits.

Número decimalBinário positivoBinário negativo
100011111
200101110
300111101
401001100
501011011
601101010
701111001

Espero que tenha esclarecido para o leitor um pouco mais sobre os números binários e que esse artigo o ajude no desenvolvimento e conhecimento da eletrônica digital, computação e programação. Em breve falaremos mais sobre os números binários e como trabalhar com a aritmética dos números binários. Caso o leitor tenha maior facilidade em aprender de forma visual, vou deixar o vídeo em que explico como fazer a conversão de números binários/decimais, mostro na prática como utilizar o método de complemento 2 na hora de escrever um número binário negativo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *