Sistema de numeração binário: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Etiquetas: Remoção considerável de conteúdo Editor Visual
Linha 11:
Toda a [[electrónica digital]] e [[computação]] estão baseadas nesse sistema binário e na [[lógica booliana|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 [[Disquete|discos magnéticos]] a binaridade se dará por diferença de [[polaridade]], positiva ou negativa.
 
== HistóriaHistó ==
#
[[Imagem:Leibniz binary system 1703.png|thumb|Página do artigo "Explication de l'Arithmétique Binaire", 1703/1705, de [[Leibniz]].]]
*# [[Conversão entre sistemas numéricos]]
O matemático indiano [[Pingala]] apresentou a primeira descrição conhecida de um sistema numérico binário no século III [[a.C.]],<ref>''Binary Numbers in Ancient India'' [http://home.ica.net/~roymanju/Binary.htm <nowiki>[em linha]</nowiki>]</ref> 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.<ref>''Chandaḥśāstra Home Page'', ''Śrī Piṁgala's Chandaḥśāstra'', ''[Paribhāṣā]'' [http://www.ancient-buddhist-texts.net/Textual-Studies/Chandas-Sastra/Chandas-Sastra-01.htm <nowiki>[em linha]</nowiki>]</ref>
 
Um conjunto de 8 [[trigrama]]s e 64 [[Hexagramas (I Ching)|hexagramas]], análogos a números binários com precisão de 3 e 6 bits, foram utilizados pelos antigos [[China|chineses]] no texto clássico [[I Ching]].<ref name"ifrah">{{Citar livro|autor=Ifrah, Georges|título=The Universal History of Computing|subtítulo=|idioma=|edição=|local=New York|editora=John Wiley & Sons |ano=2001|página=86-87|páginas=410|volumes=|volume=|isbn= 0-47139671-0}}</ref> 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:
<syntaxhighlight lang="C">
...
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;
}
}
...
</syntaxhighlight>
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.
# bém
* [[Sistema octal]]
* [[Sistema decimal]]
* [[Sistema hexadecimal]]
* [[Prefixos binários]]
* [[Conversão entre sistemas numéricos]]
 
== Ligações externas ==
* [http://www.orbispictus.com.br/downloads.php?cat_id=5&download_id=33 Tradução de ''Explication de l'Arithmétique Binaire'' (1703), de Leibniz]