Vou começar respondendo sua última pergunta:
Also, how many fingers do computers have?
Os computadores só têm um dedo ... No entanto, isso não conta toda a história, já que os computadores geralmente têm muito de mãos (como 32 ou 64 na maioria dos computadores;).
Por definição, qualquer coisa digital "é uma tecnologia de dados que usa valores discretos (descontínuos)." Podemos representar esses valores discretos na eletrônica do mundo real usando transistores como interruptores digitais. Os transistores, quando usados no modo de comutação, podem deixar o fluxo de corrente ou não. Assim, podemos representar a saída de um transistor como terra (sem conexão, 0V) ou a tensão de alimentação (ou alguma porcentagem de) - os equivalentes de falso e verdadeiro de lógica booleana .
Para usar esses estados discretos para representar valores numéricos, vemos que cada transistor pode representar dois estados discretos - ou um número de 0 a 1. Isso faz parte do sistema de números base 2 , que segue os mesmos passos que o nosso sistema base 10 (e base 3, 4, 5, base 16, e assim por diante e assim em quarto). Se representarmos o número 52 nesses vários sistemas numéricos, onde cada dígito pode variar de de 0 a N-1 , onde N é a base do sistema numérico , temos :
Base 2: 1 1 0 1 0 0 110100_2
2^5 2^4 2^3 2^2 2^1 2^0
Base 4: 3 1 0 310_4
4^2 4^1 4^0
Base 10: 5 2
10^1 10^0 52_10
Base 16: 3 4 34_16
16^1 16^0
Agora, no caso de números binários, você pode ver que podemos representar números exponencialmente maiores (como todos os outros sistemas numéricos), adicionando mais dígitos - ou no computador digital, adicionando mais transistores discretos em paralelo com o sistema. É por isso que um inteiro de 32 bits (sem sinal) pode armazenar qualquer número de 0 a (2 ^ 32) - 1.
Mais uma vez, como podemos representar apenas dois estados discretos eletronicamente, a única maneira de representarmos mais é estender esses estados com mais estados "on-off" ou adicionando mais números de base 2 em paralelo. É por isso que tudo no mundo da computação é baseado em poderes de dois - essa é a única maneira de representar valores em um computador.
Deve-se notar que isso é incrivelmente diferente do que um computador analógico , que literalmente pode ter um número infinito de estados valores. Isso introduz erros de precisão nos valores, que são inevitáveis - também porque os computadores digitais são preferidos (menos entropia de informações, melhores formas de armazenamento, compactação, criptografia e nenhuma degradação de informações).
Também deve ser notado que usamos números de base 2 porque nossos transistores podem ter apenas dois estados. Se fôssemos capazes de fazer três estados (eu não estou falando sobre lógica tri-state aqui, que simplesmente usa um estado de alta impedância) ou um transistor de quatro estados, então poderíamos certamente criar computadores usando um sistema numérico diferente.
No entanto, o binário é o "experimentado e verdadeiro", e não há vantagem real em usar um sistema numérico diferente, além do fato de que você pode precisar usar componentes menos discretos para armazenar tantos valores. Por exemplo, quando transformamos 52 nos equivalentes base-4, base-10 e base-16, é possível ver que à medida que a base do sistema numérico aumenta, naturalmente o número de dígitos individuais necessários para manter esse número diminui. / p>
No entanto, os transistores são baratos, pequenos e pequenos - por isso, não temos problemas em representar valores muito grandes (o que também é por que fizemos a mudança para a computação de 64 bits - podemos fazer mais operações em números maiores em menos tempo).