𝖂𝖎ƙ𝖎𝖊

Sistema de numeração binário

Disambig grey.svg Nota: Para outros significados para este termo, veja Sistema binário.

Predefinição:Sistemas numéricos O sistema binário ou de base 2 é um sistema de numeração posicional em que todas as quantidades se representam com base em dois números, ou seja, zero e um (0 e 1).[1][2]

Os computadores digitais trabalham internamente com dois níveis de tensão, pelo que o seu sistema de numeração natural é o sistema binário.[3] Com efeito, num sistema simples como este é possível simplificar o cálculo, com o auxílio da lógica booliana. Em computação, chama-se um dígito binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits, ainda, é chamado de nibble.

Um processador é formado por milhares de blocos lógicos complexos, formados por portas lógicas básicas, e o funcionamento destas está amparado por um postulado fundamental à eletrônica digital que determina que um circuito opere apenas com dois níveis de tensão bem definidos. Em um circuito digital TTL (Transistor Transistor Logic ou simplesmente TTL é uma classe de circuitos digitais construídos de transistores de junção bipolar (BJT), e resistores), os dois níveis de tensão padronizados são 0V (zero volt) e 5V (cinco volts). Ao projetar um sistema digital, ao invés de trabalhar com níveis de tensão trabalha-se com níveis lógicos, então, no caso do circuito TTL, 0V será representado por “0” e 5V será representado por “1”, e os níveis de tensão entre eles serão ignorados, ou seja, adotar-se-á uma faixa até a qual será considerado nível lógico zero, e a partir dela, nível lógico 1. Neste caso, de 0V a 2,5V temos “0”, e a partir daí até 5V temos “1”.

O sistema binário é base para a Álgebra booliana (de George Boole — matemático inglês), que permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim ou não, verdadeiro ou falso, tudo ou nada, ligado ou desligado, 1 ou 0).[4] Toda a electrónica digital e computação estão baseadas nesse sistema binário e na lógica de Boole, que permite representar por circuitos electrónicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e aritméticas. Os programas de computadores são codificados sob forma binária e armazenados nas mídias (memórias, discos, etc) sob esse formato. Assim, para informação armazenada na memória RAM do computador, o formato será de voltagem mais alta (1) ou mais baixa (0). Em discos magnéticos a binariedade se dará por diferença de polaridade, positiva ou negativa.

História

Página do artigo "Explication de l'Arithmétique Binaire", 1703/1705, de Leibniz.

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 >= 0){
 sN = log10( decimal ) / log10( 2.0 );
 sN1 = quo( sN );
 sN2 = pot( 2.0, multi( sN ), 1 );
}
else{
 if( decimal < 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:

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

Caso o valor seja inferior a zero:

  1. Multiplique o valor em decimal por -1.
  2. Calcule sN, sN1 e sN2 sendo que deve multiplicar sN2 por -1.
  3. 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

Ver artigo principal: 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. Como ele havia sido concebido para a língua inglesa, não contava com caracteres acentuados, nem caracteres específicos de outro idioma. O código ASCII foi então estendido para 8 bits para poder codificar novos caracteres. Este código possui 256 valores, relativo às letras maiúsculas e minúsculas, aos números, às marcas de pontuação e aos outros símbolos (caracteres acentuados no caso do código iso-latin1).[9]

Ver também

Referências

  1. Gonick, Larry (1984). Introdução Ilustrada à Computação. São Paulo: Harper & Row do Brasil. p. 115-122. 242 páginas 
  2. Bianchi, Paulo; Bezerra, Milton (1983). Microcomputadores. Arquitetura-Projeto-Programação. Rio de Janeiro: LTC. p. 14-18. 223 páginas. ISBN 85-216-0321-5 
  3. Murdocca, Miles J.; Heuring, Vincent P (2000). Introdução à Arquitetura de Computadores. Rio de Janeiro: Campus. p. 8. 512 páginas. ISBN 85-352-0684-1 
  4. Davis, Martin (2000). «2:Boole Turns Logic into Algebra». Engines of Logic. Mathematicians and the Origin of the Computer (em inglês). New York: W. W. Norton. p. 32. 257 páginas. ISBN 0-393-32229-7 
  5. Binary Numbers in Ancient India [em linha]
  6. Chandaḥśāstra Home Page, Śrī Piṁgala's Chandaḥśāstra, [Paribhāṣā] [em linha]
  7. Ifrah, Georges (2001). The Universal History of Computing. New York: John Wiley & Sons. p. 86-87. 410 páginas. ISBN 0-47139671-0 
  8. Petzold, Charles (2000). Code. The Hidden Language of Computer Hardware and Software (em inglês). Redmond: Microsoft Press. p. 286-313. 393 páginas. ISBN 0-7356-1131-9 
  9. «O código ASCII». CCM (em português). Consultado em 28 de janeiro de 2019 

Ligações externas

talvez você goste