Computadores não sabem calcular!
Computadores são ótimas máquinas para fazer cálculos, infelizmente, eles não sabem calcular…
É bem verdade que eles realizam cálculos maiores e mais complexos e ainda de forma muito mais rápida do que qualquer ser humano. O problema é que computadores não calculam, eles usam lógica!
Quando somamos 1 + 1 sabemos que o resultado é 2, mas computadores não usam números, eles usam portas lógicas. Falei sobre as portas lógicas no artigo anterior, se você ainda não viu, recomendo dar uma olhada: Computadores não entendem zeros e uns.
Para transformar nosso sistema decimal em uma forma capaz dos computadores realizarem cálculos, foi desenvolvido o binário, uma forma de expressar números através de zeros e uns.
Assim, quando dizemos para o computador somar 1 + 1 ele não retorna o número 2, mas sim o 10! e nós ensinamos ao computador como entender 10 como 2.
Se pegarmos um byte, que é um conjunto de 8 bits, ou melhor, 8 possibilidades de zeros e uns, logo 256 possibilidades diferentes de números que podem ser representadas de 0 a 255, ou do número -128 até o 127, podemos ensinar o computador a fazer mágica! Quero dizer, lógica!
O número 5 por exemplo, para um computador é representado pelo valor 101. E através de sua lógica podemos exemplificar o número 101 como 1x2^2 + 0x2^1 + 1x2^0 = 4 + 0 + 1 = 5.
Tá, mas isso é cálculo, não lógica. Ok, vamos voltar ao 1 + 1!
Quando o computador soma 1 + 1 ele retorna 10, basicamente ele diz que 1 + 1 = 0 e avança um bit, retornando 10. Quando ele soma 1 + 0 ou 0 + 1 ele retorna 1, e quando ele soma 0 + 0 ele retorna 0. E se você observar bem verá que na verdade essa é a porta lógica XOR.
Mas para fazer essa simples adição, é preciso muito mais, porque o computador precisa entender que além do resultado da porta XOR, ele precisa retornar o valor que será adicionado ao bit ao lado. Então, precisamos de duas portas XOR, duas portas AND e uma porta OR, para construir uma simples operação de adição.
Você terá três entradas, duas para cada bit a ser somado e uma para o bit que veio da soma do bit anterior, e terá duas saídas, uma para o resultado da soma do bit e outra para o bit a ser avançado.
Imagine agora esse ADDER recebendo os três valores e passando o bit a ser avançado para outro ADDER que recebe outros dois valores, e continua assim até obter oito ADDERs em sequência. Você terá um circuito lógico capaz de somar 2 bytes.
É dessa forma que computadores somam/calculam, e obvio, sempre obtêm o resultado esperado. Afinal de contas, só há um caminho a ser percorrido. Semelhante a um carrinho em um autorama, ainda que você monte a pista de formas diferentes, o carrinho sempre irá permanecer no trilho até chegar a linha de chegada!
Para ensinar um computador a calcular através da lógica é preciso que nós saibamos exatamente o que é calcular, e nós sabemos muito bem! Assim conseguimos abstrair os conceitos lógicos dos cálculos e ensinar o computador a realizá-los.