Publicidade
Economize: canal oficial do CT Ofertas no WhatsApp Entrar

Por que os computadores utilizam linguagem binária?

Por| Editado por Jones Oliveira | 09 de Maio de 2024 às 19h00

Link copiado!

Por que os computadores utilizam linguagem binária?
Por que os computadores utilizam linguagem binária?

Dos smartphones aos servidores de Data Centers, todos os computadores são conjuntos de bilhões de componentes eletrônicos organizados em sistemas extremamente complexos para realizar cálculos — ou computar. Como a operação desses circuitos se baseia na presença ou ausência de carga, a linguagem binária é ideal para representar matematicamente os dados ao longo de todos os caminhos do circuito.

Fisicamente, o funcionamento de equipamentos eletrônicos como um todo é basicamente o mesmo. Os circuitos integrados são construídos de forma que, ao passar uma corrente elétrica inicial, ela imediatamente irá carregar alguns componentes específicos pré-definidos que já trazem seus portões lógicos abertos por padrão.

Por sua vez, essa carga inicial de registradores já é um programa binário, propriamente dito, que iá iniciar outras sub-rotinas em cadeia. 

Continua após a publicidade

Circuitos organizados em sistemas complexos

Em uma analogia bastante rudimentar, o princípio é similar ao de quebra-cabeças de reações em cadeia, como no jogo TIM — The Incredible Machine. A carga inicial aciona um primeiro circuito, que aciona vários outros em sequência até gerar o “efeito final”.

Em PCs antigos, esse processo de inicialização — o famoso boot — é bastante perceptível, uma vez que cada uma dessas rotinas subordinadas está atrelada às interfaces de vídeo e de som, postando informações na tela e produzindo diferentes sinais sonoros. Inclusive, até hoje esses sinais sonoros são a forma mais eficiente de diagnosticar PCs que falham ao ligar, com cada combinação de bipes correspondendo a um circuito específico que não pôde ser acionado.

Contudo, diferente do jogo dos anos 1990, os circuitos não são combinações de lâmpadas, engrenagens, bolas e ventiladores, mas trilhas elétricas interligando capacitores, transistores e uma série de outros componentes que identificam, apenas, a presença ou ausência de carga. 

Sendo assim, essa presença ou ausência, matematicamente, é representada como 1 ou 0, fazendo com que a linguagem binária seja a única que os componentes realmente entendem. 

Como os PCs funcionam?

Continua após a publicidade

Todo o restante são abstrações em camadas superiores de código, sucessivamente convertidas em linguagens cada vez mais elaboradas “de baixo para cima”, ou seja, desde os registradores até os periféricos de entrada e saída (I/O), como teclado e monitor.

Pensando especificamente no processador (CPU), são necessários vários componentes para viabilizar as operações matemáticas que serão convertidas em textos, imagens, sons, e assim por diante. 

  • Portões lógicos: Pegam duas entradas binárias (de corrente), as comparam para operacionalizar, e retornam uma saída binária específica, definindo se um transistor ficará ligado (1) ou desligado (0). Os portões lógicos mais comuns são do tipo E, OU e NÃO, que, justamente, definem o tipo de comparação que serão realizadas entre os dados de entrada.
    • Portões E: Se as duas entradas binárias forem 1, a entrada de saída será 1
    • Portões OU: Se pelo menos uma das entradas binárias for 1, a entrada de saída será 1
    • Portões NÃO: Esses portões utilizam apenas uma entrada binária para uma saída, não havendo comparação. Se a entrada for 1, a saída será 1, se a entrada for 0, a saída será 0.
Continua após a publicidade
  • Unidade Lógica e Aritmética (ALU): é o componente que realiza as operações matemáticas com todos os zeros e uns armazenados nos registradores.
  • Unidade controladora (CU): é parte da CPU que determina o que cada componente irá fazer dependendo do código recebido.
  • Registradores: são dispositivos de armazenamento de dados associados ao conjunto de transistores, portões lógicos, CUs, ALUs e outros possíveis componentes. Cada dado 0 ou 1 gerado nas interações de portões lógicos e ALUs é armazenado em um endereço de registradores. A letra C, por exemplo, pode ser interpretada como 01000011, em binário. Isso significa que ela utiliza 8 registradores sequenciais nessas configurações de ligado e desligado para ser armazenada.
  • Instruções: São os códigos de mais baixo nível, imediatamente acima do binário, e definem todas as ações que aquele chip consegue realizar.
  • Ciclos computacionais: Correntes elétricas se comportam em formato de ondas, com picos e vales, criando pulsos — os intervalos entre os picos. Cada pulso é um ciclo, ou quando corrente percorre todo o circuito acionando cada componente, resultando na execução das instruções.

Por que não utilizar outra base numérica? 

Como os computadores são, essencialmente, grandes calculadoras que transformam números em equações complexas convertidas em informação digital, é comum ficar a dúvida sobre o porquê de não utilizarmos outra base numérica, no lugar da binária.

Continua após a publicidade

A questão é que isso não necessariamente é uma verdade absoluta. Para quem está acostumado com programas de edição de imagens, é comum ver os códigos de cores em #FF000 para representar o vermelho, por exemplo.

Esse código, é justamente uma combinação de endereços em outra base numérica, no caso a hexadecimal (base dezesseis). Lembrando que o padrão de cores que utilizamos é o RGB (Vermelho/Verde/Azul), cada digito em hexa decimal é um tom de intensidade naquela cor específica, variando de 0 a 255 (FF).

O problema é que os transistores só operam com os valores 0 e 1. Representar essa cor vermelha em código binário nesse mesmo arranjo RGB seria #111111110000000000000000, um número muito maior e mais difícil para as pessoas compreenderem. 

Continua após a publicidade

Sendo assim, a linguagem computacional utiliza, sim, outras bases numéricas além da binária, mas a escolha depende de dois fatores principais: aplicação e camada de programação. Na camada mais básica, é impossível utilizar qualquer base diferente do binário, mas em um nível muito superior, com o de interface direta com o usuário, seguir esse padrão é muito pouco prático, além de ser extremamente confuso.

Única linguagem que os computadores entendem

Para muitos programas, o código de alto nível pode ser convertido muito mais facilmente para base 16, como nos games de consoles 16 bits. Inclusive, é por essa razão que os cartuchos Gameshark para trapacear nos jogos utilizavam códigos em hexadecimal.

Continua após a publicidade

No fundo, inserir esses códigos estava alterando endereços específicos do programa daqueles games, dando vidas extra, desbloqueando personagens, pulando fases, e assim por diante. O mesmo vale para os aceleradores de instruções dos processadores, como os MMX, AVX2, FMA3.

Na prática, eles são hardwares projetados para pegar códigos de alto nível, programados em linguagens mais simples para o programador, e convertê-los para binário, única linguagem que a máquina consegue, efetivamente, entender.