Sistema de numeração binário

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
NoFonti.svg
Este artigo ou se(c)ção cita uma ou mais fontes fiáveis e independentes, mas ela(s) não cobre(m) todo o texto (desde Março de 2012).
Por favor, melhore este artigo providenciando mais fontes fiáveis e independentes e inserindo-as em notas de rodapé ou no corpo do texto, conforme o livro de estilo.
Encontre fontes: Googlenotícias, livros, acadêmicoYahoo!Bing. Veja como referenciar e citar as fontes.
Sistemas de numeração por cultura
Numerais hindu-arábico
Árabe ocidental
Árabe oriental
Família indiana
Khmer
Mongólico
Thai
Numerais leste-asiáticos
Chinês
Counting rods
Japonês
Coreano
Suzhou
Numerais alfabéticos
Abjad
Armênio
Āryabhaṭa
Cirílica
Ge'ez
Grego (jônio)
Hebraico
Outros sistemas
Ático
Babilônica
Brahmi
Egípcios
Etrusco
Inuíte
Maia
Romano
Urnfield
Lista de sistemas de numeração
Sistema de numeração posicional
5, 10, 15, 20
2, 4, 8, 16, 32, 64
3, 6, 9, 12, 24, 30, 36, 60
1, 7, 13, 26

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 booleana. 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 a 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), 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 booleana (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 e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado).[4] Toda a electrónica digital e computação está baseada 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.

História[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

Tal como a notação científica decimal existe notação científica binária. Vejamos parte do código duma 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[editar | editar código-fonte]

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.

Referências

  1. Gonick, Larry. Introdução Ilustrada à Computação. São Paulo: Harper & Row do Brasil, 1984. 242 pp. p. 115-122.
  2. Bianchi, Paulo; Bezerra, Milton. Microcomputadores: Arquitetura-Projeto-Programação. Rio de Janeiro: LTC, 1983. 223 pp. p. 14-18. ISBN 85-216-0321-5
  3. Murdocca, Miles J.; Heuring, Vincent P. Introdução à Arquitetura de Computadores. Rio de Janeiro: Campus, 2000. 512 pp. p. 8. ISBN 85-352-0684-1
  4. Davis, Martin. Engines of Logic: Mathematicians and the Origin of the Computer (em inglês). New York: W. W. Norton, 2000. Capítulo: 2:Boole Turns Logic into Algebra. , 257 pp. p. 32. 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. The Universal History of Computing. New York: John Wiley & Sons, 2001. 410 pp. p. 86-87. ISBN 0-47139671-0
  8. Petzold, Charles. Code: The Hidden Language of Computer Hardware and Software (em inglês). Redmond: Microsoft Press, 2000. 393 pp. p. 286-313. ISBN 0-7356-1131-9

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]