Por que tudo na computação funciona com um número base de 2 à potência de x?

2
  1. Tamanho da unidade flash (aumentar em potências de 2)
  2. Tamanho da RAM (aumentar em potências de 2)
  3. 32bit, 64bit, 128bit (aumento por poder de 2) etc ...

Alguém pode explicar isso, acho que pode ter algo a ver com a compatibilidade de dispositivos e também com código binário? Nesse caso, você poderia explicar por que esses dispositivos têm que seguir essa sequência de código binário?

Além disso, quantos dedos os computadores têm?

    
por Jacques 16.11.2011 / 11:58

6 respostas

11

A eletrônica digital usada em computadores tem dois estados: ligado e desligado. Portanto, o armazenamento de números na memória é composto de coleções de elementos, cada qual ligado ou desligado.

Portanto, um elemento só pode representar os números 0 e 1 (dois valores).
Se você combinar dois deles, agora você pode representar 2 com a potência de dois (quatro) números 0 a 3.

  • off, off = 0
  • desativado, on = 1
  • ativado, desativado = 2
  • on, on = 3

Se você tem três elementos, você pode representar dois com a potência de três (oito) números de 0 a 7.

  • off, off, off = 0
  • off, off, on = 1
  • off, on, off = 2
  • off, on, on = 3
  • ativado, desativado, desativado = 4
  • ativado, desativado, ativado = 5
  • on, on, off = 6
  • on, on, on = 7

E assim por diante.

O elemento pode ser um transistor de comutação ou algo equivalente que está em um estado ligado ou desligado, pode ser um pequeno pedaço de superfície do disco rígido magnetizado paralelo ou perpendicular à direção de rotação (dois estados). / p>

Por isso, tudo está naturalmente organizado em poderes de dois.

Nós só usamos poderes de 10 porque temos dez dedos (incluindo polegares), computadores não.

    
por 16.11.2011 / 12:34
3

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).

    
por 16.11.2011 / 13:27
1

Provavelmente, o principal motivo é que é mais fácil trabalhar com o hardware. É fácil representar dois estados com energia ligada ou desligada (ou baixa potência vs. potência máxima), mas seria mais difícil, digamos, usar e interpretar corretamente 10 níveis de tensão diferentes.

A seguir, estão os componentes lógicos: componentes como portas (NOT, AND, OR, XOR, NAND, NOR) são fáceis de entender e usar e podem ser combinados para gerar componentes de maior ordem (como flip-flops ou no extremo). fim, uma CPU). A matemática por trás disso é muito bem compreendida ( Álgebra booleana ).

Havia computadores trabalhando com sistema decimal (o sistema baseado em "dez" que você costuma usar), sendo o mais famoso ENIAC mas eles provavelmente provaram ser muito complexos e ineficientes.

    
por 16.11.2011 / 13:19
0

Eles todos dependem de código binário composto de 1's e 0s, e cada bit que você adiciona a um número binário dobra isso.

1111 pode ser 0000 a 1111 ou decimal 0 a 15: são 16 combinações.

11111 pode ser de 00000 a 11111 ou 0 a 31: são 32 combinações e assim por diante

Fazê-los em números decimais apenas "desperdiçaria" alguns desses números usados no nível de código de máquina para endereçar a memória ou fornecer informações codificadas, o que seria ineficiente.

    
por 16.11.2011 / 12:42
0

Os dados são armazenados em BITs (dígitos binários).
1 dígito binário pode ter um dos 2 valores, 0 ou 1. 2 valores são 2 ^ 1

2 bits (bit 0 e bit 1) podem conter 4 valores 00 01 10 11. duas vezes o que um bit pode aguentar.

3 bits podem conter o dobro de 2 bits. Porque quando o terceiro bit é 0, os 2 restantes possuem 4 valores, e quando o terceiro bit é 1, os 2 bits restantes possuem 4 valores. Então, para 3 bits, obtemos 8 valores. 2 ^ 3 = 8

2 ^ número de bits = número de valores.

Não são apenas os bits que funcionam por esse padrão. de base ^ n

Dígitos decimais, quantos números decimais você recebe por 3 dígitos decimais? 10 ^ 3 = 1000 0 até 999

1-999 são 999 valores. e 0 é outro valor. São 1000 valores. 0-999.

'porque, quantos números entre 1 e 10 (inclusive)? 10 Quantos valores entre 0 e 10 (inclusive), bem, haveria 11!

2 bits contêm 4 valores .. representando os números de 0 a 3. Assim como 2 dígitos decimais contêm 100 valores 0..99

    
por 16.11.2011 / 12:53
-2

Porque, se você tiver uma memória, precisará endereçá-la para encontrar a célula de memória para armazenar e recuperar os valores. Um endereço tem que ter algum número de bits, digamos x. Se você tem x bits, então você pode representar qualquer um dos 2 valores únicos com eles. Então, se você usa endereços de x bits, você pode também fazer a memória de locais com tamanho x .

    
por 27.12.2013 / 05:45

Tags