Certo computador pode ser equipado com 1.073 .741 .824 bytes de memória. Por que um fabricante escolheria tal número peculiar, em vez de um número fácil de lembrar, como 1 milhão?

Passo 1

O enunciado dá o número de bytes disponível em um computador: 1\,073\,741\,824 bytes, e pergunta por que um fabricante escolheria esse número “peculiar” em vez de um número redondo como 1\;000\;000.
Informações relevantes:
  • Valor dado: 1\,073\,741\,824 bytes.
  • Valor alternativo citado: 1\,000\;000 bytes (um milhão).
  • A pergunta é qualitativa: requer explicar a razão técnica/arquitetônica por trás dessa escolha.

Passo 2

Primeira observação: verificar se o número dado é uma potência de dois (dica clássica em informática). Vou calcular potências de dois relevantes, mostrando como fazer sem calculadora:
  • 2^{10}=1024.
  • 2^{20}=(2^{10})^2=1024^2=1\,048\,576.
  • 2^{30}=2^{10}\cdot 2^{20}=1024\cdot 1\,048\,576.
Para multiplicar 1\,048\,576 por 1024 sem calculadora, faço:
  • 1\,048\,576\times 1000=1\,048\,576\,000.
  • 1\,048\,576\times 24=1\,048\,576\times (20+4)=20\,971\,520+4\,194\,304=25\,165\,824.
  • Somando: 1\,048\,576\,000+25\,165\,824=1\,073\,741\,824.
Portanto 2^{30}=1\,073\,741\,824. Resultado: o número dado é exatamente uma potência de dois.

Passo 3

Explicação do conceito essencial (passo-a-passo, sem jargão complicado):
  • Em hardware digital, informação é representada em bits (0/1). Um “bit de endereço” é uma linha do barramento de endereços que pode assumir 0 ou 1.
  • Se um sistema tem n bits de endereço, cada combinação desses bits aponta para uma posição distinta de memória. O número de combinações possíveis é 2^{n}. Isso significa que com n bits de endereço é possível endereçar exatamente 2^{n} posições distintas.

Passo 4

Como cada posição de memória costuma corresponder a um byte (na maioria dos computadores), o total de bytes endereçáveis é 2^{n} bytes quando há n bits de endereço. Assim:
  • Se o fabricante fornece 1\,073\,741\,824 bytes, isso é 2^{30} bytes, o que corresponde a ter 30 bits de endereço — uma escolha natural para a arquitetura.

Passo 5

Por que isso é preferível a 1\;000\;000 bytes? Mostro numericamente:
  • 1\,000\;000=10^{6}. Em base 2 isso corresponde a 2^{\log_{2}(10^{6})}=2^{6\log_{2}(10)}. Numericamente \log_{2}(10)\approx 3{,}3219, então \log_{2}(10^{6})\approx 19{,}931. Ou seja 10^{6}\approx 2^{19{,}931\ldots}, que não é uma potência inteira de dois.
  • Para implementar exatamente 1\,000\;000 bytes seriam necessários cerca de 19{,}931 bits de endereço — não existe meio bit. Ter um número de bytes que não é 2^{n} implica arranjos de hardware mais complicados e desperdício/fragmentação na organização dos chips.

Passo 6

Conexão com nomes usuais e convenções:
  • Em informática costuma-se aproximar: 2^{10}=1024 é chamado informalmente de “quilobyte” (KB), 2^{20} de “megabyte” (MB) e 2^{30} de “gigabyte” (GB). Estritamente falando, a nomenclatura correta é 1\;\text{kibibyte}=2^{10}, 1\;\text{mebibyte}=2^{20}, 1\;\text{gibibyte}=2^{30}, mas historicamente fabricantes e sistemas misturaram esses termos.
  • Assim 1\,073\,741\,824 bytes é exatamente 1 gibibyte ( 1\;\text{GiB}=2^{30} bytes) — por isso aparece com esse valor “estranho” em vez de 1\;000\;000.

Passo 7

Razões práticas e de projeto (resumidas e concretas):
  • Memórias são fabricadas em arrays organizados em potências de dois (linhas/colunas binárias), então 2^{n} é natural e barato de implementar.
  • Barramentos e endereçadores digitais trabalham com números inteiros de bits; escolher 2^{n} bytes evita lógica extra para mapear endereços “não binários”.
  • Sistemas operacionais, caches, páginas de memória e alinhamento usam tamanhos bacados em potências de dois — isso simplifica endereçamento e melhora eficiência.
  • Usar exatamente 1\,000\;000 bytes não traz vantagem prática e tornaria o projeto mais complexo.

Passo 8

Exemplos rápidos para fixar:
  • 2^{10}=1024 bytes (aprox. 10^3).
  • 2^{20}=1\,048\,576 bytes (aprox. 10^6).
  • 2^{30}=1\,073\,741\,824 bytes (aprox. 10^9).
    Veja como cada passo em potências de dois corresponde a “mil”, “milhão”, “bilhão” aproximados, mas sempre em potências inteiras de dois, o que é o que importa para hardware.

Resposta

Porque 1\,073\,741\,824=2^{30} bytes; memórias e barramentos são projetados em potências de dois (endereçamento por n bits dá exatamente 2^{n} posições), então é muito mais simples e eficiente fabricar e endereçar 2^{30} bytes (1 GiB) do que um valor decimal arbitrário como 1\,000\,000.

Exercícios relacionados