Qué es cada unidad de datos
byte B
Un byte son ocho bits, cosa que no siempre estuvo clara: los primeros ordenadores usaron seis, siete o nueve. Se impuso el ocho porque en él cabe un carácter y porque la cifra se parte en mitades limpias.
kilobyte kB
Un kilobyte son 1.000 bytes cuando lo define un organismo de normalización y 1.024 cuando lo define un sistema operativo. Esta página calcula con 1.000; la unidad de 1.024 se llama kibibyte.
megabyte MB
Un megabyte es un millón de bytes. Los fabricantes de almacenamiento siempre han contado en decimal, y por eso sus cifras parecen mayores que lo que muestra el ordenador.
gigabyte GB
Un gigabyte son mil millones de bytes, en el sentido decimal que usan los fabricantes de discos, las tarifas de datos y los tamaños de vídeo.
terabyte TB
Un terabyte es un billón de bytes en la cuenta corta, es decir 10¹². Un disco vendido como de 1 TB tiene exactamente eso: el espacio que parece faltar es un desacuerdo sobre unidades, no una carencia.
kibibyte KiB
Un kibibyte son exactamente 1.024 bytes. El nombre se introdujo en 1998 para que «kilobyte» pudiera volver a significar 1.000, aunque la costumbre nunca llegó a imponerse del todo.
mebibyte MiB
Un mebibyte son 1.024 kibibytes, es decir 1.048.576 bytes. Las herramientas de Linux y las cifras de memoria se refieren casi siempre a esto, aunque escriban «MB».
gibibyte GiB
Un gibibyte son 1.073.741.824 bytes, alrededor de un 7 % más que un gigabyte. Windows mide en gibibytes pero los etiqueta «GB», y en eso consiste todo el misterio del espacio que desaparece.
tebibyte TiB
Un tebibyte son 1.024 gibibytes. La distancia respecto al terabyte crece en cada escalón: 2,4 % en kilo, 4,9 % en mega, 7,4 % en giga y 10 % en tera.
Notas sobre las conversiones habituales de datos
gb a mb
El mil de esta página, y quién más cuenta así
Aquí se divide entre mil porque es lo que significa el prefijo. Kilo, mega y giga son prefijos del SI para 10³, 10⁶ y 10⁹, y valen eso mismo aplicados a cualquier otra magnitud: un kilómetro, un megavatio, un gigahercio. Aplicados al byte dan 1.000, 1.000.000 y 1.000.000.000, que es el significado que usan los fabricantes de discos, todas las normas de red, las tarifas de datos y los tamaños que los servicios publican en su propia documentación.
El sistema rival existe y no es este. Las potencias de 1.024 dan el kibibyte, el mebibyte y el gibibyte —KiB, MiB y GiB—, y son lo que cuenta la mayoría de los sistemas de escritorio, escriban las letras que escriban. Los dos responden a preguntas distintas y los dos son correctos dentro de su convenio; el error consiste en tomar la cifra de uno y el límite del otro sin fijarse en cuál es cuál.
byte a gb
De dónde ha salido esa ristra de dígitos
Un recuento exacto de bytes viene siempre de una herramienta que se niega a redondear: ls -l, la columna de tamaño de un cubo de almacenamiento, la cabecera Content-Length de una descarga, el panel de un alojamiento web, una consulta preguntando cuánto ocupa una tabla. Ninguna de ellas intenta ser legible. Devuelven la cifra que el sistema de archivos guarda de verdad, y por eso tiene diez u once dígitos y nadie la lee de un vistazo.
Esa incomodidad es justamente el motivo para partir de ahí. El número de bytes es el archivo; cualquier otra forma de escribir su tamaño es una traducción redondeada, y las traducciones no coinciden entre sí. Convertir desde bytes te deja aguas arriba del desacuerdo: el resultado es una decisión tuya y no una que ha tomado por ti el explorador de archivos.
byte a gib
Un programa da bytes porque es lo único que no admite discusión
Los sistemas informan de tamaños en bytes a propósito. Un recuento de bytes no lleva prefijo que interpretar, ni redondeo que deshacer, ni configuración regional dentro, así que una métrica, una línea de registro y una respuesta de API se pueden comparar sin ponerse antes de acuerdo sobre qué significa una G. Esa misma virtud es lo que las vuelve ilegibles: 17.179.869.184 no dice nada hasta que se divide por algo.
El divisor es 1.073.741.824 cuando el sistema de alrededor cuenta en binario, y la memoria, la caché de páginas, el uso de un sistema de archivos y casi todos los contadores del núcleo lo hacen. Esa cifra son 16 GiB exactos. Dividir en cambio entre mil millones da 17,18 y esconde que el número era una potencia de dos limpia, que suele ser lo más informativo que tenía.
byte a kb
La escala en la que todavía se cuenta cada byte
Por debajo de un megabyte, más o menos, el número de bytes en bruto sigue siendo legible, y eso cambia para qué sirve la conversión. Nadie pasa 27.504 bytes a kilobytes porque no entienda la cifra original; lo hace porque todo lo demás con lo que va a compararla —un presupuesto de rendimiento web, un límite de subida, otro archivo del que alguien habló en kB— está escrito en esa unidad.
Eso también significa que la precisión sale barata en esta escala. Un decimal representa cien bytes y dos representan diez, así que 27,5 kB y 27,50 kB son ambas cifras honestas, y la segunda no es relleno. Más arriba en la escala esos decimales dejan de significar nada; aquí, una décima de kilobyte es una cantidad real que se puede quitar de un archivo.
byte a kib
Un archivo, dos números: ls -l frente a ls -lh
Ejecutar `ls -l` da el recuento exacto de bytes, que es lo que registra el sistema de archivos y lo que devuelve cualquier API que informe de un tamaño. Ejecutar `ls -lh` sobre el mismo archivo da algo como 24K. El archivo no ha cambiado entre las dos órdenes: la segunda ha dividido entre 1.024, redondeado, y añadido una letra que no dice qué base usó.
Esa es la razón para saber convertir bytes a KiB a mano: la cifra exacta es la que tiene que coincidir con una cabecera, un límite de una suma de comprobación o una cuota de almacenamiento; la cifra redondeada es la que un compañero cita desde una terminal. Moverse entre las dos sin adivinar qué base usó la herramienta es la habilidad completa de esta página.
byte a mb
Por qué una máquina entrega bytes y no otra cosa
El byte es lo que cuentan de verdad todas las capas que hay por debajo de la pantalla. Un listado de directorio sin opciones de formato, el campo de tamaño de una llamada al sistema, una cabecera Content-Length, el atributo de tamaño en el listado de un almacén de objetos y el campo de longitud de una línea de registro son enteros de bytes, porque el byte es la única unidad de esta zona sin dialectos: es la misma cantidad en todos los sistemas y bajo cualquier convención.
Precisamente por eso las interfaces lo emiten. En cuanto un tamaño se pasa a megabytes ha adquirido un divisor y un redondeo, y ninguno de los dos viaja pegado al número. Una API que devuelve 5242880 ha dicho algo inequívoco; una que devuelve «5,24 MB» ha dicho algo que necesita una nota al pie. Convertir es tarea tuya y va al final, y saberlo mantiene disponible la cifra exacta todo el tiempo que haga falta.