História da numeração binária.
Autor: Vander | Publicado: 2015-04-17T16:39:00-03:00

Entendendo Binários!



História


O matemático indiano Pingala apresentou a primeira descrição conhecida de um sistema numérico binário no século III a.C.,5 representando os números de 1 a 8 com a sequência (usando símbolos modernos) 001, 010, 011, 100, 101, 110, 111 e 1000.6

Um conjunto de 8 trigramas e 64 hexagramas, análogos a números binários com precisão de 3 e 6 bits, foram utilizados pelos antigos chineses no texto clássico I Ching.7 Conjuntos similares de combinações binárias foram utilizados em sistemas africanos de adivinhação tais como o Ifá, bem como na Geomancia do medievo ocidental.

Uma sistematização binária dos hexagramas do I Ching, representando a sequência decimal de 0 a 63, e um método para gerar tais sequências, foi desenvolvida pelo filósofo e estudioso Shao Yong no século XI. Entretanto, não há evidências que Shao Yong chegou à aritmética binária.

O sistema numérico binário moderno foi documentado de forma abrangente por Gottfried Leibniz no século XVIII em seu artigo "Explication de l'Arithmétique Binaire". O sistema de Leibniz utilizou 0 e 1, tal como o sistema numérico binário corrente nos dias de hoje.

Em 1854, o matemático britânico George Boole publicou um artigo fundamental detalhando um sistema lógico que se tornaria conhecido como Álgebra Booleana. Seu sistema lógico tornou-se essencial para o desenvolvimento do sistema binário, particularmente sua aplicação a circuitos eletrônicos.

Em 1937, Claude Shannon produziu sua tese no MIT que implementava Álgebra Booleana e aritmética binária utilizando circuitos elétricos pela primeira vez na história. Intitulado "A Symbolic Analysis of Relay and Switching Circuits", a tese de Shannon praticamente fundou o projeto de circuitos digitais.

Códigos Binários
A conversão de um número decimal no seu equivalente binário é chamada codificação. Um número decimal é expresso como um código binário ou número binário. O sistema numérico binário, como apresentado, é conhecido como código binário puro. Este nome o diferencia de outros tipos de códigos binários.

Decimal Codificado em Binário
O sistema numérico decimal é fácil de se usar devido à familiaridade. O sistema numérico binário é menos conveniente de se usar pois nos é menos familiar. É difícil olhar em número binário e rapidamente reconhecer o seu equivalente decimal.

Por exemplo, o número binário 1010011 representa o número decimal 83. É difícil dizer imediatamente, por inspeção do número, qual seu valor decimal. Entretanto, em alguns minutos, usando os procedimentos descritos anteriormente, pode-se prontamente calcular seu valor decimal. A quantidade de tempo que leva para converter ou reconhecer um número binário é uma desvantagem no trabalho com este código, a despeito das numerosas vantagens de "hardware".

Os engenheiros reconheceram este problema cedo, e desenvolveram uma forma especial de código binário que era mais compatível com o sistema decimal. Como uma grande quantidade de dispositivos digitais, instrumentos e equipamentos usam entradas e saídas decimais, este código especial tornou-se muito difundido e utilizado. Esse código especial é chamado decimal codificado em binário (BCD - binary coded decimal). O código BCD combina algumas das características dos sistemas numéricos binário e decimais.

Notação Científica Binária
Tal como a notação científica decimal existe notação científica binária. Vejamos parte do código de uma aplicação de código aberto que suporta esta funcionalidade:

...
if( decimal &gt;= 0){
 sN = log10( decimal ) / log10( 2.0 );
 sN1 = quo( sN );
 sN2 = pot( 2.0, multi( sN ), 1 );
}
else{
 if( decimal &lt; 0 ){
  decimal = decimal * -1;
  sN = log10( decimal ) / log10( 2.0 );
  sN1 = quo( sN );
  sN2 = pot( 2.0, multi( sN ), 1 ) * -1;
  decimal = decimal * -1;
 }
}
...
Ao pegarmos no valor em decimal podemos facilmente convertê-lo para binário, mas a numeração binária é extensa na medida que se obtém muitos dígitos na finalização da conversão. Com isto torna-se possível obter o valor numa forma mais legível. Então temos a seguinte ordem de ações para obter um valor em notação científica binária:

O valor é maior ou igual a zero?
Se sim calcular o logaritmo de base 2 desse valor (sN).
Guardar o valor à esquerda da virgula (sN1).
Guardar o valor à direita da virgula (multi(sN)).
Calcular o valor a multiplicar por x10^(sN1).
Converter sN1 e sN2 para binário.
E então escrever (sN2 em binário)x10^(sN1 em binário).
Caso o valor seja inferior a zero:

Multiplique o valor em decimal por -1.
Calcule sN, sN1 e sN2 sendo que deve multiplicar sN2 por -1.
De seguida multiplique novamente o valor em decimal por -1.
É desnecessário colocar o valor em notação binária se sN1 for menor ou igual a 5 e maior ou igual a -4 ou quando o valor decimal a converter é igual a 0 pois são valores de leitura legível.

Esta forma de conversão foi desenvolvida e testada por um desenvolvedor de software de código-aberto, sendo que não está patenteada.

Tal como foi feito para o sistema binário, poderemos aplicar as mesmas regras para outros sistemas de numeração como octal e hexadecimal, base logarítmica 8 e 16 respetivamente. Para a conversão também se teria de usar respetivamente 8 e 16 para os sistemas de numeração mencionados.

Código ASCII
O "American Standard Code for Information Interchange" comumente referido como ASCII – também chamado ASCII completo, ou ASCII estendido –, é uma forma especial de código binário que é largamente utilizado em microprocessadores e equipamentos de comunicação de dados.8

Um novo nome para este código que está se tornando popular é "American National Standard Code for Information Interchange" (ANSCII). Entretanto, utilizaremos o termo consagrado, ASCII. É um código binário que é usado em transferência de dados entre microprocessadores e seus dispositivos periféricos, e em comunicação de dados por rádio e telefone. Com sete bits pode-se representar um total de 27 = 128 caracteres diferentes. Estes caracteres compreendem números decimais de 0 até 9, letras maiúsculas e minúsculas do alfabeto, mais alguns outros caracteres especiais usados para pontuação e controle de dados.

fonte: (&nbsp;http://pt.wikipedia.org/wiki/Sistema_de_numeração_binário )