O que é binário e por que os computadores o usam?
Computadores não entendem palavras ou números do jeito que os humanos fazem. O software moderno permite que o usuário final ignore isso, mas nos níveis mais baixos do seu computador, tudo é representado por um sinal elétrico binário que se registra em um dos dois estados: ligado ou desligado. Para entender dados complicados, seu computador precisa codificá-lo em binário.
Binário é um sistema numérico de base 2. Base 2 significa que existem apenas dois dígitos-1 e 0-que correspondem aos estados on e off que seu computador pode entender. Você provavelmente está familiarizado com a base 10 - o sistema decimal. Decimal faz uso de dez dígitos que variam de 0 a 9, e então envolve para formar números de dois dígitos, com cada dígito valendo dez vezes mais que o último (1, 10, 100, etc.). Binário é semelhante, com cada dígito valendo duas vezes mais que o último.
Contando em binário
Em binário, o primeiro dígito vale 1 em decimal. O segundo dígito vale 2, o terceiro vale 4, o quarto vale 8 e assim duplica cada vez. Adicionar tudo isso te dá o número em decimal. assim,
1111 (em binário) = 8 + 4 + 2 + 1 = 15 (em decimal)
Contabilizando 0, isso nos dá 16 valores possíveis para quatro bits binários. Mova para 8 bits e você tem 256 valores possíveis. Isso ocupa muito mais espaço para representar, pois quatro dígitos em decimal nos dão 10.000 valores possíveis. Pode parecer que estamos passando por todo esse problema de reinventar o nosso sistema de contagem apenas para torná-lo mais desajeitado, mas os computadores entendem o binário muito melhor do que eles entendem decimal. Claro, o binário ocupa mais espaço, mas somos retidos pelo hardware. E para algumas coisas, como o processamento lógico, o binário é melhor que o decimal.
Há outro sistema básico que também é usado na programação: hexadecimal. Embora os computadores não sejam executados em hexadecimal, os programadores o usam para representar endereços binários em um formato legível por humanos ao escrever código. Isso ocorre porque dois dígitos de hexadecimal podem representar um byte inteiro, oito dígitos em binário. Hexadecimal usa 0-9 como decimal, e também as letras de A a F para representar os seis dígitos adicionais.
Então, por que os computadores usam binário?
A resposta curta: hardware e as leis da física. Cada número no seu computador é um sinal elétrico e, nos primórdios da computação, os sinais elétricos eram muito mais difíceis de medir e controlar com muita precisão. Fazia mais sentido distinguir apenas um estado “ligado” - representado por carga negativa - e um estado “desligado” - representado por uma carga positiva. Para aqueles que não sabem por que o "off" é representado por uma carga positiva, é porque os elétrons têm uma carga negativa - mais elétrons significam mais corrente com uma carga negativa.
Assim, os primeiros computadores do tamanho de uma sala usaram o binário para construir seus sistemas e, embora usassem um hardware muito mais antigo e volumoso, mantivemos os mesmos princípios fundamentais. Os computadores modernos usam o que é conhecido como transistor para realizar cálculos com binário. Aqui está um diagrama de como é um transistor de efeito de campo (FET):
Essencialmente, só permite que a corrente flua da fonte para o dreno, se houver uma corrente no portão. Isso forma um comutador binário. Os fabricantes podem construir esses transistores incrivelmente pequenos - até 5 nanômetros, ou aproximadamente o tamanho de dois filamentos de DNA. É assim que as CPUs modernas operam, e mesmo elas podem sofrer problemas de diferenciação entre estados ligados e desligados (embora isso se deva principalmente ao seu tamanho molecular irreal, estando sujeito à estranheza da mecânica quântica).
Mas por que só base 2?
Então você pode estar pensando: “por que apenas 0 e 1? Você não poderia simplesmente adicionar outro dígito? ”Enquanto algumas delas se resumem à tradição de como os computadores são construídos, adicionar outro dígito significaria que teríamos que distinguir entre diferentes níveis de corrente - não apenas“ desligado ”e“ ligado ”. ", Mas também afirma como" um pouco "e" muito ".
O problema aqui é que se você quiser usar vários níveis de voltagem, precisará de uma maneira de realizar cálculos com eles facilmente, e o hardware para isso não é viável como substituto da computação binária. De fato existe; ele é chamado de computador ternário, e existe desde os anos 50, mas é basicamente onde o desenvolvimento parou. A lógica ternária é muito mais eficiente que o binário, mas, até agora, ninguém tem um substituto efetivo para o transistor binário, ou, no mínimo, nenhum trabalho foi feito para desenvolvê-los nas mesmas escalas minúsculas que os binários..
A razão pela qual não podemos usar a lógica ternária se resume à maneira como os transistores são empilhados em um computador - algo chamado “portas”-e como eles são usados para realizar matemática. Gates toma duas entradas, executa uma operação nelas e retorna uma saída.
Isso nos leva à longa resposta: a matemática binária é muito mais fácil para um computador do que qualquer outra coisa. A lógica booleana mapeia facilmente para sistemas binários, com True e False sendo representados por on e off. As portas do seu computador operam com lógica booleana: elas usam duas entradas e executam uma operação nelas, como AND, OR, XOR e assim por diante. Duas entradas são fáceis de gerenciar. Se você fosse representar graficamente as respostas para cada entrada possível, você teria o que é conhecido como uma tabela de verdade:
Uma tabela de verdade binária operando em lógica booleana terá quatro saídas possíveis para cada operação fundamental. Mas como os portais ternários recebem três entradas, uma tabela ternária de verdade teria 9 ou mais. Enquanto um sistema binário tem 16 operadores possíveis (2 ^ 2 ^ 2), um sistema ternário teria 19,683 (3 ^ 3 ^ 3). O escalonamento se torna um problema porque, enquanto o ternário é mais eficiente, ele também é exponencialmente mais complexo.
Quem sabe? No futuro, poderíamos começar a ver computadores ternários se tornando uma coisa, à medida que forçamos os limites do binário a um nível molecular. Por enquanto, no entanto, o mundo continuará rodando em binário.
Créditos da imagem: spainter_vfx / Shutterstock, Wikipedia, Wikipedia, Wikipedia, Wikipedia