3.3.1	Bits, nibbles, bytes y otras unidades

3.3.1 Bits, nibbles, bytes y otras unidades

Partiendo de la unidad mínima de la información, el bit (1 ó 0), el byte, se definió como un grupo de 8 bits. Esto se estableció por razones prácticas y técnicas dado que su tamaño permite representar 256 valores, lo que es adecuado para codificaciones de caracteres como ASCII, y facilita además el diseño eficiente de hardware. Sin embargo, por ejemplo, en la década de 1970 varios sistemas informáticos emplearon nibbles (4 bits) como unidad básica de datos. A este respecto, los primeros microprocesadores de 4 bits, como el Intel 4004, operaban con nibbles, permitiendo representar 16 valores distintos (0-15) o un dígito decimal en formato BCD (Binary-Coded Decimal), donde cada dígito decimal se codifica individualmente en su equivalente binario de 4 bits. Así, el número decimal 259 se representa en BCD como 0010 (el 2) 0101 (el 5) 1001 (el 9) [106].

 En informática, la interpretación de kilobyte ha variado entre sistemas decimal y binario.  Conforme al sistema tradicional binario —originado en las computadoras basadas en las ideas de John von Neumann y las aplicaciones prácticas de las teorías de Claude Shannon sobre el uso del binario para representar información, como el EDSAC [106]—, un kilobyte se ha considerado como 1.024 bytes (2¹⁰ bytes). Sin embargo, según el Sistema Internacional de Unidades (SI) —que utiliza prefijos decimales basados en potencias de 10— un kilobyte se define como 1.000 bytes (10³ bytes). Esta dualidad lleva a confusiones en la representación de capacidades de almacenamiento y transmisión de datos, las cuales se intentaron solventar en 1998, cuando la Comisión Electrotécnica Internacional (IEC) introdujo los prefijos binarios, como kibibyte (KiB), para representar 1.024 bytes, reservando kilobyte (kB) para 1.000 bytes [107]. Los siguientes listados desarrollan los tres sistemas de medida con sus nombres completos (partiendo del prefijo) y sus siglas.

 Sistema tradicional binario:

  • Kilobyte (KB): 1.024 bytes
  • Megabyte (MB): 1.048.576 bytes
  • Gigabyte (GB): 1.073.741.824 bytes
  • Terabyte (TB): 1.099.511.627.776 bytes
  • Petabyte (PB): 1.125.899.906.842.624 bytes
  • Exabyte (EB): 1.152.921.504.606.846.976 bytes
  • Zettabyte (ZB): 1.180.591.620.717.411.303.424 bytes
  • Yottabyte (YB): 1.208.925.819.614.629.174.706.176 bytes

 Sistema Internacional de Unidades (SI) decimal:

  • Kilobyte (kB): 1.000 bytes
  • Megabyte (MB): 1.000.000 bytes
  • Gigabyte (GB): 1.000.000.000 bytes
  • Terabyte (TB): 1.000.000.000.000 bytes
  • Petabyte (PB): 1.000.000.000.000.000 bytes
  • Exabyte (EB): 1.000.000.000.000.000.000 bytes
  • Zettabyte (ZB): 1.000.000.000.000.000.000.000 bytes
  • Yottabyte (YB): 1.000.000.000.000.000.000.000.000 bytes

 Comisión Electrotécnica Internacional (IEC) binario:

  • Kibibyte (KiB): 1.024 bytes
  • Mebibyte (MiB): 1.048.576 bytes
  • Gibibyte (GiB): 1.073.741.824 bytes
  • Tebibyte (TiB): 1.099.511.627.776 bytes
  • Pebibyte (PiB): 1.125.899.906.842.624 bytes
  • Exbibyte (EiB): 1.152.921.504.606.846.976 bytes
  • Zebibyte (ZiB): 1.180.591.620.717.411.303.424 bytes
  • Yobibyte (YiB): 1.208.925.819.614.629.174.706.176 bytes

 Vemos como el sistema tradicional binario y el SI utilizan el mismo término para denotar cantidades diferentes de bytes. Por ejemplo, un "gigabyte" (GB) en el SI equivale a 1.000.000.000 bytes, mientras que, en el sistema tradicional binario ese mismo "gigabyte" (GB) se refiere a 1.073.741.824 bytes, haciendo uso del mismo sintagma para diferente semántica. Por su parte, el sistema IEC, que representa las mismas cantidades de bytes que el binario tradicional (1.073.741.824 bytes), introduce términos diferentes, como "gibibyte" (GiB) en vez de "gigabyte" (GB), para evitar confusiones entre sintagmas y semántica.

 Esta dualidad en las definiciones y el uso de las unidades de medida afecta la percepción de las capacidades en diferentes dispositivos. Por ejemplo, los fabricantes de hardware suelen especificar la capacidad utilizando prefijos decimales del SI. Así, una unidad de almacenamiento etiquetada como de "500 GB" según el SI tiene una capacidad de 500.000.000.000 bytes. Sin embargo, sistemas operativos como Windows interpretan estas capacidades en términos binarios, y no utilizando las siglas GiB del IEC que sería lo adecuado, sino “GB” del sistema tradicional binario. De esta forma Windows considera que 1 GB es igual a 1.073.741.824 bytes (1.024³). Al dividir 500.000.000.000 bytes entre 1.073.741.824 bytes, el sistema operativo muestra aproximadamente 465,66 GB, lo que lleva a los usuarios a pensar que falta capacidad en la unidad de almacenamiento dado que el fabricante lo etiqueto en “GB” (del SI) y Windows usa también la etiqueta “GB” pero esta vez refiriéndose al sistema tradicional binario. ¿En algún momento Windows etiquetará correctamente para evitar confusiones, y los fabricantes utilizarán medidas IEC tal y como sería lo adecuado?

 En otros sistemas operativos como Linux, la representación de las capacidades de almacenamiento puede variar según la distribución y las herramientas utilizadas. Por defecto, los comandos Linux, como “df” y “du”, muestran las capacidades en bloques de 1.024 bytes, utilizando el sistema tradicional binario para los cálculos. Estas herramientas etiquetan las unidades como "MB" o "GB" igual que el SI, aunque los valores corresponden a potencias de 2 (por ejemplo, 1 GB = 1.073.741.824 bytes), lo que puede generar la misma confusión que en Windows. Para solucionar esto, al ejecutar “df --si”, las unidades se presentan adoptando las etiquetas y cantidades específicas del IEC como "GiB" o "MiB", algo que también se puede lograr en Windows desde línea de comando mediante un “wmic” (Windows Management Instrumentation Command-line) desde PowerShell. Por su parte macOS —que al igual que Linux tiene sus raíces en sistemas operativos de tipo Unix— a partir de la versión 10.6 (Snow Leopard) se salta la IEC, y utiliza los prefijos decimales del SI para mostrar las capacidades de almacenamiento, alineándose con las especificaciones de los fabricantes de cara a proporciona una experiencia de usuario menos confusa.

En la práctica de la ingeniería, el SI es más común en el ámbito de las telecomunicaciones, donde los datos se miden y representan en base decimal, mientras que el sistema IEC es —o debería ser— más frecuente en el ámbito de la informática, reflejando la estructura binaria de las computadoras. Sin embargo, el problema planteado no tiene una solución sencilla. Por inercia, se sigue utilizando el término del sistema tradicional binario cuando se hace referencia a capacidades —por ejemplo, "megabyte" para denotar 1.048.576 bytes— y el interlocutor, en términos estrictos, puede interpretarlo como propio del SI —es decir, 1.000.000 bytes— o no. No parece que esté cercano el día en que un informático erradique de su vocabulario los términos "megabyte" y "gigabyte" para hacer un uso constante de los desambiguados "mebibyte" y "gibibyte", y esto es un problema. La ingeniería no puede basarse en la ambigüedad y polisemia de términos homófonos.


Extracto de "Informática: El mundo como información y representación"

Fecha de publicación 1/1/2025 (ISBN. 9798340452597)

Javier Arévalo Royo

Agente del Sistema Riojano de Ciencia, Tecnología e Innovación, PhD-St. UPNA

3 semanas

¿Qué es entonces un terapeuta? Depende: para un informático son 1.073.741.824 peutas, para un teleco 1.000.000.000 de peutas. 🥸

Inicia sesión para ver o añadir un comentario.

Otros usuarios han visto

Ver temas