O sistema binário (do latim binārĭus , “duplo”) é o sistema numérico que usa a base 2 . Os dígitos do número binário posicional são comumente chamados de bit (do dígito binário inglês ou "dígito binário") . Um bit pode assumir dois valores, denotados pela convenção 0 e 1 .
O sistema binário é útil para representar o funcionamento da eletrônica digital usada em computadores . Portanto, é usado por linguagens de programação de baixo nível .
O sistema binário mais comum é a base matemática dois , permitindo que os números sejam representados usando a numeração de lugares com apenas dois dígitos: 0 e 1.
Nesse tipo de codificação, cada número é representado exclusivamente por uma sequência ordenada de dígitos . E cada posição m representa uma potência ( m - 1) da base . Se nos limitarmos inicialmente a inteiros positivos, na base dez essas potências são: um (1), dez (representado por 10), cem (dez vezes dez, representado por 100), mil (dez vezes cem, representado por 1000), dez mil, etc. Na base dois, esses poderes são: um (1), dois (também representado por 10), quatro (duas vezes dois, representado por 100), oito (duas vezes quatro, representado por 1000), dezesseis (duas vezes oito, representado por 10.000), etc.
Vemos que o significado das representações 10, 100, 1000, etc. depende da base utilizada: 10 é sempre igual à base, ou seja, dez na base dez, mas dois na base dois.
Na base dez, são usados dez dígitos, de zero a nove; na base n , usamos n dígitos, de zero a n - 1; portanto, na base dois, usamos os dois dígitos “0” e “1”.
Um número que é expresso na base B pelos quatro dígitos 1101 pode ser analisado:
, que dá :
1101 na base B = 10: | |||||
1101 na base B = 8: | |||||
1101 na base B = 2: |
Os primeiros números e dígitos da base 10 são escritos:
decimal | binário | observação |
---|---|---|
0 | 0 | zero |
1 | 1 | un = potência de base zero (válido para todas as bases, então dois e dez) |
2 | 10 | dois = dois à potência de um (um zero atrás de 1) |
3 | 11 | |
4 | 100 | quatro = dois elevado a dois (dois zeros atrás de 1) |
5 | 101 | |
6 | 110 | |
7 | 111 | |
8 | 1000 | oito = dois elevado a três (três zeros atrás de 1) |
9 | 1001 |
Damos a cada bit uma potência de dois, como nesta sequência 1, 2, 4, 8, 16, 32, 64. Para obter o número 7, adicionamos os três primeiros bits; para obter 6, adicionamos apenas a broca com peso 4 e a broca com peso 2.
As técnicas das quatro operações básicas (adição, subtração, multiplicação e divisão) permanecem exatamente as mesmas que na notação decimal; eles são drasticamente simplificados porque existem apenas os dois dígitos 0 e 1. Para a multiplicação, por exemplo, qualquer que seja a base, a multiplicação por 10 (ou seja, pela própria base) é feita adicionando um zero à direita.
As únicas mudanças que alteram por um lado a forma da sequência de dígitos que expressa o resultado (conta apenas zeros e um), por outro lado o significado desta sequência (10 significa "dois" e não "dez", 100 significa “quatro” e não “cem”, etc.).
Adição e subtraçãoPassamos de um número binário para o próximo adicionando 1, como em decimal, sem esquecer as retenções e usando a tabela comum (mas reduzida à sua expressão mais simples):
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 avec 1 retenue 0 - 0 = 0 0 - 1 = 1 avec 1 retenue 1 - 0 = 1 1 - 1 = 0Pode-se ver que a adição de dois bits A e B dá A XOR B com um transporte igual a A AND B.
Então :
11 + 1 ____ 100Detalhe:
1 + 1 = 10 => on pose 0 et on retient 1 1 + 1(retenue) = 10 => on pose 0 et on retient 1 0 + 1(retenue) = 1 => on pose 1 devant 00A multiplicação por dois é feita deslocando cada dígito um passo para a esquerda e inserindo um zero no final.
Por exemplo, duas vezes onze:
A divisão inteira por dois é feita deslocando cada dígito um passo para a direita, sendo o dígito direito o restante removido.
Por exemplo, onze dividido por dois:
A aritmética binária (mais simplesmente cálculo binário) é usada pelos sistemas eletrônicos mais comuns (calculadoras, computadores, etc.) porque os dois dígitos 0 e 1 são refletidos ali pela tensão ou pela passagem de uma corrente. Por exemplo, 0 pode ser representado pelo estado baixo (tensão ou corrente zero) e 1 pelo estado alto (tensão existente, corrente que flui).
Para completar a representação de inteiros, é necessário saber escrever inteiros negativos . Existem duas representações, o complemento de um e o complemento de dois.
Complemento para umEssa codificação consiste em inverter o valor de cada bit.
Por exemplo, para obter -7:
Um defeito desse sistema é que o zero tem duas representações: 0000 e 1111 ("+0" e "−0"). Ele não é usado pelos computadores atuais, mas foi usado por computadores mais antigos, como o Control Data 6600 . As duas representações de zero complicam os circuitos de teste.
Complemento para doisO complemento de dois consiste em realizar um complemento de um e, em seguida, adicionar 1.
Por exemplo, para obter −7:
Essa codificação tem a vantagem de não exigir diferenciação especial de números positivos e negativos e, em particular, evita o problema da dupla representação de zero.
Aqui está uma adição de -7 e +9 realizada como um complemento de dois de 4 bits:
-7 1001 +9 1001 __ ____ 2 (1) 0010 (on « ignore » la retenue)Com n bits, este sistema permite representar os números entre −2 n −1 e 2 n −1 - 1.
As bases 8 (octal) e 16 (hexadecimal) são bases de potência da base 2. Essas duas bases são comumente usadas em processamento de dados e por razões práticas; essas bases estão fortemente ligadas à base 2 e os números escritos nessas bases são mais "manipuláveis" (por causa da escrita mais curta) pelo intelecto humano. Escrever números nessas bases é facilmente conseguido agrupando os dígitos da escrita do número na base 2.
Poderíamos facilmente estender esse princípio a todas as bases que são potências de 2.
Para binárioBasta converter o valor de cada um dos dígitos em sua forma binária usando um número de dígitos correspondente à potência da base: 16 = 2 4 , 8 = 2 3 , então 4 dígitos para o hexadecimal e 3 para o octal:
|
|
O código cinza, também chamado de binário refletido, permite que apenas um bit mude por vez quando um número é incrementado ou diminuído em um. O nome do código vem do engenheiro americano Frank Gray , que registrou a patente desse código em 1947.
Para calcular diretamente o código Gray de um inteiro a partir do seu predecessor, podemos proceder da seguinte forma:
Para reconciliar a lógica binária do computador com a lógica humana, pode-se converter em binário, ao invés dos próprios números, cada um dos dígitos que os compõem em notação posicional decimal. Cada um desses dígitos é então codificado em 4 bits:
1994 = 0001 1001 1001 0100 1×1000 + 9×100 + 9×10 + 4×1Com n bits (n múltiplos de 4), é possível representar os números entre 0 e 10 n / 4 -1. Ou seja, aproximadamente entre 0 e 1,778 n -1. O DCB é um código redundante, de fato algumas combinações não são usadas (como 1111 por exemplo).
Esta representação evita por construção todos os problemas de acumulação de arredondamento incômodos que ocorreriam durante a manipulação de grandes números que excedem o tamanho dos circuitos na aritmética inteira e obrigam a recorrer ao flutuador. No entanto, é possível manipular números com precisão arbitrária usando uma codificação mais eficiente do que DCB.
Existem variantes de codificação DCB:
Na teoria da informação , a entropia de uma fonte de informação é expressa em bits . A própria teoria é indiferente à representação das quantidades que usa.
A lógica clássica é uma lógica bivalente: uma proposição é verdadeira ou falsa. Portanto, é possível representar a verdade de uma proposição por um número binário. Por exemplo, podemos modelar as operações da aritmética binária usando a álgebra booleana .
A álgebra booleana representa um caso muito particular de uso de probabilidades envolvendo apenas os únicos valores verdade 0 e 1. Veja o teorema de Cox-Jaynes .
O binário é usado no processamento de dados porque permite modelar o funcionamento dos componentes de comutação como o TTL ou o CMOS . A presença de um limite de tensão entre os transistores, desprezando o valor exato desta tensão, representará 0 ou 1. Por exemplo, o número 0 será usado para significar uma ausência de tensão dentro de 0,5 V , e o número 1 para indicar sua presença de mais de 0,5 V . Essa margem de tolerância torna possível empurrar as taxas dos microprocessadores para valores que atingem vários gigahertz .
Na ciência da computação , a representação binária possibilita a manipulação clara dos bits : cada dígito binário corresponde a um bit. No entanto, como a representação binária requer o uso de muitos dígitos (mesmo para números relativamente pequenos), ela leva a problemas de legibilidade significativos e, portanto, a riscos de erros de transcrição para os programadores. Outras representações são, portanto, preferidas : a notação hexadecimal, que permite manipular informações em pacotes de 4 bits, é adequada para quase todos os microprocessadores atuais que trabalham com palavras de 8, 16, 32 ou 64 bits; mais raro, com pontuação octal , época popular dos primeiros minicomputadores DEC até 12 ou 36 bits, que podem representar informações em pacotes de 3 bits.