¿Qué es un byte?
Un byte es una unidad de información digital formada por 8 bits, que juntos pueden representar 256 valores distintos, de 0 a 255. En la mayoría de los ordenadores es la unidad de memoria más pequeña con dirección propia, y el tamaño de los archivos se cuenta en bytes.
Actualizado el 24 de septiembre de 2026
- 48H
- 69i
- 20␣
- F0 9F 98 80😀
4 caracteres, 7 bytes
La letra A, guardada en tu ordenador, es el número 65, y el número 65 se guarda como ocho bits: 01000001. Ese grupo de ocho es un byte. Las direcciones de memoria cuentan bytes, los tamaños de archivo cuentan bytes, y casi todos los tipos de datos de un lenguaje de programación ocupan un número entero de bytes.
Por qué un byte tiene 8 bits
La palabra "byte" la acuñó Werner Buchholz en 1956, mientras trabajaba en el ordenador Stretch de IBM. La escribió con y para que no se confundiera con "bit". Los primeros ordenadores usaban grupos de tamaños distintos, a menudo de 6 bits, suficientes para mayúsculas y dígitos pero no para minúsculas.
El System/360 de IBM, lanzado en 1964, usaba bytes de 8 bits, y el resto de la industria lo siguió. Ocho bits dan 256 valores, espacio para mayúsculas y minúsculas, dígitos, signos de puntuación y códigos de control. Además, ocho es una potencia de dos, así que un byte se divide en dos mitades exactas de 4 bits, cada una escrita como un dígito hexadecimal. Los estándares de redes todavía dicen "octeto" cuando necesitan dejar claro que se refieren exactamente a 8 bits.
Qué cabe en un byte
Un byte tiene 256 combinaciones posibles, de 00000000 a 11111111. Los programas las leen de unas pocas formas estándar:
- como un número sin signo de 0 a 255;
- como un número con signo de -128 a 127;
- como un carácter, por ejemplo
A(65) o!(33); - como dos dígitos hexadecimales, de
00aFF.
El tipo bytes de Python es una secuencia de estos valores, y rechaza cualquier cosa fuera del rango de 0 a 255:
b'Hi!'
[72, 105, 33]
01001000 48
ValueError: bytes must be in range(0, 256)
No todos los caracteres caben en un byte. UTF-8, la codificación que usa la mayor parte de la web, guarda los 128 caracteres ASCII en 1 byte cada uno y todo lo demás en 2 a 4 bytes:
A 1 bytes: [65] 41
é 2 bytes: [195, 169] c3a9
€ 3 bytes: [226, 130, 172] e282ac
😀 4 bytes: [240, 159, 152, 128] f09f9880
Por eso la longitud de una cadena en caracteres y su tamaño en bytes pueden no coincidir.
Diferencia entre bit y byte
Un bit es un único 0 o 1. Un byte son 8 bits. Las dos unidades se confunden con facilidad porque sus símbolos solo se diferencian en la mayúscula:
| Bit | Byte | |
|---|---|---|
| Qué es | Un dígito binario | 8 bits |
| Valores posibles | 2 (0 o 1) | 256 (de 0 a 255) |
| Símbolo | b (minúscula) | B (mayúscula) |
| Suele medir | Velocidad de red: Mbps, Gbps | Almacenamiento y tamaño de archivo: KB, MB, GB |
| Ejemplo | Una conexión de 100 Mbps | Una foto de 5 MB |
Para pasar de bits a bytes, divide entre 8. Una conexión de 100 Mbps mueve como máximo 12,5 MB por segundo, así que una foto de 5 MB tarda al menos 0,4 segundos en descargarse con ella.
Kilobytes, megabytes y gigabytes
Las unidades mayores existen en dos sistemas, y la diferencia entre ellos explica por qué un disco nuevo parece más pequeño en Windows que en su etiqueta.
| Decimal (SI) | Bytes | Binario (IEC) | Bytes |
|---|---|---|---|
| kilobyte (kB) | 1000 | kibibyte (KiB) | 1024 |
| megabyte (MB) | 1.000.000 | mebibyte (MiB) | 1.048.576 |
| gigabyte (GB) | 1.000.000.000 | gibibyte (GiB) | 1.073.741.824 |
| terabyte (TB) | 1.000.000.000.000 | tebibyte (TiB) | 1.099.511.627.776 |
Los fabricantes de discos, las velocidades de red y macOS (desde la versión 10.6, en 2009) usan las unidades decimales. Los tamaños de RAM y Windows usan las unidades binarias, pero Windows las llama KB, MB y GB. La IEC introdujo los nombres kibibyte, mebibyte y gibibyte en 1998 para acabar con la confusión, aunque muchos programas todavía no los usan.
1.0 TB (decimal, used on the box)
931.3 GiB (binary, what Windows calls GB)
12.5 MB per second
No falta espacio. El disco contiene el billón de bytes que promete la caja; Windows divide entre 1024 tres veces en lugar de entre 1000.
Los bytes en el código
Todo valor en memoria ocupa un número entero de bytes. En C, sizeof informa de ese número. Un char ocupa exactamente 1 byte por definición, y en los sistemas actuales de 64 bits con Linux, macOS y Windows un short ocupa 2 bytes, un int 4 y un double 8. Por tanto, un array de 1000 valores int ocupa 4000 bytes.
printf("%zu\n", sizeof(int)); /* prints 4 */
El tipo byte de Java siempre tiene signo, de -128 a 127, así que un valor como 200 no cabe:
byte b = (byte) 200; // b is -56: the same 8 bits, read as signed
Los datos en bruto, como imágenes, archivos comprimidos y paquetes de red, se manejan como arrays de bytes: bytes y bytearray en Python, byte[] en Java, Uint8Array en JavaScript. Abrir un archivo en Python con el modo "rb" te da sus bytes en lugar de texto.
Los hashes y los checksums también se miden en bytes. Un digest SHA-256 ocupa 32 bytes, y por eso se imprime como 64 caracteres hexadecimales, y un checksum CRC32 ocupa 4 bytes. El generador de hashes muestra ambos para cualquier texto.
Qué leer después
Para la unidad que hay por debajo del byte, lee qué es un bit, y para ver cómo se usan los bytes para detectar archivos dañados, qué es un checksum. El conversor de bases numéricas pasa cualquier byte entre decimal, binario y hexadecimal, y la guía de tipos de datos en C indica el tamaño en bytes de cada tipo de C.
Preguntas frecuentes
¿Cómo se llaman 8 bits 11111111?
11111111 es un byte con todos los bits a 1. Leído como número sin signo es 255, el mayor valor que cabe en un byte, que se escribe FF en hexadecimal. Leídos como byte con signo en complemento a dos, los mismos bits significan -1.¿Por qué 8 bits equivalen a 1 byte?
¿Por qué 4 bits se llaman nibble?
¿1 byte son 4 bits?
¿Qué es más grande, un byte o un GB?
¿Cómo es un byte por dentro?
01000001. Ese patrón es el número 65, que también es el código de la letra A en ASCII. Los programadores suelen escribir un byte con dos dígitos hexadecimales, así que 01000001 se convierte en 41.