Saltar a contenido

Bits y bytes

Ahora que ya sabemos como convertir de decimal a binario y viceversa, podemos representar cualquier dato numérico. Supongamos las edades de las personas de una familia:

  • El padre tiene 35 años. En binario, 100011
  • La madre, 30 años. En binario, 11110
  • El hijo, 7 años. En binario, 111

Si transmitimos estos datos de un ordenador a otro, el flujo de información consistirá en una secuencia de señales que se interpretarán de la siguiente forma:

10001111110111

La cuestión que se plantea es la siguiente: cuando el ordenador receptor examina el flujo ¿dónde termina un dato y comienza el siguiente? La edad de cada persona tiene diferente número de dígitos.

La solución a este problema es que todos los datos estén formados por un número fijo de ceros y unos. El estándar establecido es usar 8 dígitos (o múltiplo) para cada dato:

  • El padre 35 años: 00100011
  • La madre 30 años: 00011110
  • El hijo 7 años: 00000111

Véase que rellenamos con ceros por la izquierda. De esta forma, el flujo de datos será:

00100011 00011110 00000111

y será fácil saber donde termina un dato y comienza el siguiente. Cada paquete de ocho bits se llama byte.

Un dato puede estar formado por uno, dos, cuatro u ocho bytes, es decir, 8, 16, 32 o 64 bits. En algunos casos especiales de cálculo complejo se llega a utilizar datos de mayor tamaño.

Ahora bien, cuando nuestro programa acude a una ubicación de la memoria RAM, ¿como sabe cuantos bytes ocupa un dato? Es responsabilidad de las instrucciones del programa el coger el número de bytes correctos.

Supongamos un dato representado por un byte, como por ejemplo, la edad de una persona. Combinando bits, los posibles valores en binario pueden ir de 0000 0000 a 1111 1111, es decir, 256 combinaciones diferentes. Por lo tanto:

  • con un dato de 8 bits, podemos representar valores de 0 a 255
  • con un dato de 16 bits, podemos representar valores de 0 a 65.535
  • con un dato de 32 bits, podemos representar valores de 0 a 4.294.967.295
  • con un dato de 64 bits, podemos representar valores de 0 a 18.446.744.073.709.551.615

Cada registro de la CPU suelen tener capacidad para un único dato, y el tamaño de los registros determina la potencia de cálculo de la máquina. Al dato que una CPU puede colocar en un registro se le llama “palabra”. Los ordenadores domésticos modernos son capaces de trabajar con palabras de 64 bits, aunque el concepto de byte se sigue manteniendo. Una palabra de 64 bits equivale a 8 bytes.

La capacidad de un registro se limita a una palabra, pero la memoria RAM y el disco duro tienen espacio para almacenar millones de datos. Veamos las unidades de medida:

  • Un kilobyte son 1024 bytes y se representa con el símbolo Kb (o con una k). Ya hemos dicho anteriormente que 1024 es un número “redondo” en el sistema binario de numeración.

    Por ejemplo, si determinado archivo tiene un tamaño de 10k, en realidad contendrá 10 x 1.024 bytes, o lo que es lo mismo, 10 x 1.024 x 8 bits (ceros y unos).

  • Un Megabyte (MB) son 1.024 kilobytes

  • Un Gigabyte (GB) son 1.024 megabytes
  • Un Terabyte (TB) son 1.024 gigabytes
  • Un Petabyte (PB) son 1.024 terabytes
  • Un Exabyte (EB) son 1.024 petabytes
  • Un Zettabyte (ZB) son 1.024 exabytes
  • Un Yottabyte (YB) son 1.024 zettabytes