¿Por qué los megabytes no son exactamente 1 millón de bytes?

Las computadoras son máquinas binarias, y todo funciona convenientemente en potencias de dos. La potencia más cercana de dos a 1,000 es 1,024, por lo que los programadores generalmente usan el término “kbits” y “kbytes” para significar 1024 en lugar de 1000.

Entonces, cuando llegas a un “megabyte”, en lugar de hablar de 1,000 x 1,000, hablas de 1,024 x 1,024, que es 1,048,576.

Lo que se vuelve confuso (y casi engañoso) es que los fabricantes de discos duros comenzaron a hablar en términos de “megabytes” cuando querían decir 1,000,000 bytes o (aún más confusamente) 1000 kilobytes … ¡1,024,000 bytes! Una o dos compañías hicieron esto para que pareciera que sus discos duros tenían más almacenamiento que sus competidores, y ahora todos parecen hacerlo, lo cual es un desastre.

En un esfuerzo por domar la confusión, en 1998 el IEC estableció un nuevo conjunto de nombres de prefijos para estas unidades binarias:

kibi, mebi, gibi, tebi, pebi, exbi, zebi y yobi.

Se supone que las abreviaturas para estos están en mayúscula, de modo que según su esquema, un Kbyte es 1024 bytes pero un kbyte es 1000 bytes. Esa no es una gran idea porque colisiona con las reglas de las unidades SI que dicen que “mega” es una M mayúscula y “milli” es minúscula m.

Entonces, ahora no sabe si 10m es 10 mili- o 10 mega-, y aún no sabe si 10M es diez mega- o diez mebi-.

En cualquier caso, las recomendaciones de IEC se ignoran casi por completo en la industria, aunque los documentos académicos a menudo las usan. Simplemente se acepta que cuando hablamos de bits y bytes estamos usando notación “binaria” y cuando hablamos de voltajes y temperaturas estamos usando “decimales”.

Donde las cosas se complican es en la intersección de estas cosas, así que si digo que estamos transmitiendo datos a 10 Mbits / segundo, la frecuencia es probablemente 10.048 MHz.

Otros esfuerzos para arreglar las cosas son llamar al “binario” ka “kilo grande” y usar letras griegas para los prefijos. Esos esfuerzos se hundieron sin dejar rastro.

Así que todo es un desastre horrible … lo sentimos.

Como las computadoras no hablan decimal, hablan binario.

1000 es un número significativo en decimal

1024 es un número significativo en binario

Las personas de marketing, por otro lado, juegan rápido y suelto con las definiciones y usarán cualquier lógica intrincada que puedan para poner una gran pegatina de “1TB” en el HDD, sea cual sea el tamaño real.

ya que las computadoras usan un sistema binario y no un sistema decimal para contar

2 ^ 10 = 1024 esto está cerca de 1000, así que lo llamamos kilobyte

2 ^ 20 = 1,048,576 esto es cerca de 1,000,000 por lo que lo llamamos megabyte

2 ^ 30 = 1,073,741,824 esto es cerca de 1,000,000,000 lo llamamos gigabyte

¿Cómo le gustaría llamar a un gigabyte de memoria un gigabyte, 73 megabytes, 741 kilobytes, 824 bytes de memoria? Me perderías después de gigabyte.

Para describir las magnitudes, el sistema de atajos es “lo suficientemente bueno para el trabajo del gobierno”