Unidades y sistemas de numeración
Qué mide un bit y qué unidades se construyen sobre él, por qué un kilobyte ya no son 1024 bytes, cómo se pasa un número de una base a otra y las siete puertas lógicas con las que se combinan bits.
El bit, el cúbit y las unidades que se apilan encima
El bit es la unidad básica de información en la computación clásica: un dígito binario que solo puede valer 0 o 1. Su equivalente en computación cuántica es el cúbit o bit cuántico, que es la unidad básica de información de ese modelo.
Trabajar bit a bit es incómodo, así que se agrupan. Las agrupaciones pequeñas tienen nombre propio, y el byte es la que se ha impuesto como unidad práctica de medida.
| Unidad | Bits |
|---|---|
| Bit | 1 |
| Crumb | 2 |
| Nibble | 4 |
| Byte | 8 |
Un nibble es medio byte, y por eso un dígito hexadecimal cabe exactamente en un nibble.
Para el examen
Bit: 1 bit
Crumb: 2 bits
Nibble: 4 bits
Byte: 8 bits
Cúbit: la unidad de la computación cuántica
Múltiplos: el Sistema Internacional frente a los prefijos binarios
Durante años se llamó kilobyte tanto a 1000 bytes como a 1024. Ya no. El Sistema Internacional usa potencias de diez y sus prefijos de siempre (kilo, mega, giga), mientras que los múltiplos en potencias de dos tienen prefijos propios normalizados, que se escriben añadiendo una «i»: kibi, mebi, gibi.
| Prefijo decimal | Valor | Prefijo binario | Valor |
|---|---|---|---|
| kilobyte (KB) | 10 elevado a 3 | kibibyte (KiB) | 2 elevado a 10 = 1024 |
| megabyte (MB) | 10 elevado a 6 | mebibyte (MiB) | 2 elevado a 20 |
| gigabyte (GB) | 10 elevado a 9 | gibibyte (GiB) | 2 elevado a 30 |
| terabyte (TB) | 10 elevado a 12 | tebibyte (TiB) | 2 elevado a 40 |
| petabyte (PB) | 10 elevado a 15 | pebibyte (PiB) | 2 elevado a 50 |
| exabyte (EB) | 10 elevado a 18 | exbibyte (EiB) | 2 elevado a 60 |
| zettabyte (ZB) | 10 elevado a 21 | zebibyte (ZiB) | 2 elevado a 70 |
| yottabyte (YB) | 10 elevado a 24 | yobibyte (YiB) | 2 elevado a 80 |
Por encima del yotta, el Sistema Internacional incorporó en 2022 dos prefijos más: ronna (10 elevado a 27, ronnabyte o RB) y quetta (10 elevado a 30, quettabyte o QB). Son prefijos decimales; los prefijos binarios normalizados llegan hasta yobi.
Un kilobyte son 1000 bytes. Los 1024 de toda la vida se llaman ahora kibibyte, y la «i» del símbolo (KiB) es la que avisa.
Para el examen
KB frente a KiB: 1.000 frente a 1.024 bytes
Prefijos decimales: kilo, mega, giga, tera…
Prefijos binarios: kibi, mebi, gibi…: la «i» los delata
Prefijos decimales de 2022: ronna (10^27) y quetta (10^30)
Tope de los binarios: yobi
Los cuatro sistemas de numeración
Un sistema de numeración se define por su base, que no es más que cuántos símbolos distintos tiene disponibles. Cuando se acaban los símbolos hay que añadir una posición a la izquierda. Los cuatro que se manejan en informática son estos.
| Sistema | Base | Símbolos | Ejemplo |
|---|---|---|---|
| Decimal | 10 | 0 a 9 | 429 en base 10 |
| Binario | 2 | 0 y 1 | 010010 en base 2 |
| Octal | 8 | 0 a 7 | 73010 en base 8 |
| Hexadecimal | 16 | 0 a 9 y A a F | AF30101 en base 16 |
De ahí sale un error que se detecta al vuelo: un número escrito en octal no puede contener un 8 ni un 9, porque en base 8 esos símbolos no existen. Si se ve un 238 marcado como octal, el número es incorrecto sin necesidad de convertir nada.
Para el examen
Decimal: base 10
Binario: base 2
Octal: base 8: no existen el 8 ni el 9
Hexadecimal: base 16: dígitos 0-9 y letras A-F
Pasar cualquier base a decimal
Cada dígito de un número vale lo que dice el símbolo multiplicado por el peso de su posición, y ese peso es la base elevada a la posición que ocupa, contando desde cero y de derecha a izquierda. Sumando todos esos productos se obtiene el valor en decimal.
101 en base 2
1 x 2^0 = 1
0 x 2^1 = 0
1 x 2^2 = 4
suma = 5
231 en base 8
1 x 8^0 = 1
3 x 8^1 = 24
2 x 8^2 = 128
suma = 153El truco práctico en binario es no multiplicar nada: basta con recordar los pesos (1, 2, 4, 8, 16, 32, 64, 128) y sumar los que llevan un uno encima.
Para el examen
Método: cada dígito por su base elevada a la posición, y se suma
Desde dónde se cuenta: desde cero, por la derecha
Pasar de decimal y saltar entre binario, octal y hexadecimal
De decimal a binario se divide entre 2 una y otra vez, guardando el resto de cada división, hasta llegar a un cociente que ya no se puede dividir. El número binario se lee empezando por el último cociente y siguiendo por los restos, del último al primero. Para pasar a hexadecimal se hace lo mismo dividiendo entre 16, o se pasa antes a binario y luego se agrupa.
100 entre 2
100 : 2 = 50 resto 0
50 : 2 = 25 resto 0
25 : 2 = 12 resto 1
12 : 2 = 6 resto 0
6 : 2 = 3 resto 0
3 : 2 = 1 resto 1
Se lee el ultimo cociente (1) y luego los restos hacia atras:
100 en decimal = 1100100 en binarioEntre binario y las otras dos bases no hace falta dividir nada, porque 8 y 16 son potencias de 2. Se agrupan los bits desde la derecha: en bloques de 3 para pasar a octal y en bloques de 4 para pasar a hexadecimal, y cada bloque se traduce por separado.
Binario a hexadecimal, bloques de 4:
00011001 -> 0001 1001 -> 1 9 -> 19 en hexadecimal
Binario a octal, bloques de 3:
00011001 -> 0 011 001 -> 0 3 1 -> 31 en octalBloques de 3 para octal, bloques de 4 para hexadecimal, y siempre agrupando desde la derecha.
Para el examen
De decimal a binario: divisiones sucesivas entre 2; se lee el último cociente y los restos hacia atrás
Binario a octal: bloques de 3 bits desde la derecha
Binario a hexadecimal: bloques de 4 bits desde la derecha
Operaciones lógicas: AND, OR y XOR
Con bits no se opera solo aritméticamente: también se combinan mediante operaciones lógicas, que trabajan bit a bit y devuelven otro bit. Las tres básicas se resumen en una frase cada una.
| Entrada A | Entrada B | A AND B | A OR B | A XOR B |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
- AND (conjunción): vale 1 solo si las dos entradas valen 1.
- OR (disyunción): vale 1 si al menos una entrada vale 1.
- XOR (disyunción exclusiva): vale 1 cuando las entradas son distintas, y 0 cuando coinciden.
XOR es el detector de diferencias: si las dos entradas son iguales da 0. De ahí que se use para comparar y para calcular paridad.
Para el examen
AND: 1 solo cuando las dos entradas son 1
OR: 1 cuando al menos una entrada es 1
XOR: 1 solo cuando las entradas difieren
NOT y las puertas negadas
A las tres anteriores les falta la más simple de todas: NOT, la negación. Es la única que trabaja con una sola entrada, y lo único que hace es darle la vuelta al bit, de 0 a 1 y de 1 a 0. Con ella se construyen las tres que quedan, que son AND, OR y XOR con la salida negada.
- NOT (negación o inversor): una sola entrada. Devuelve el bit contrario.
- NAND: es AND con la salida negada. Devuelve 0 únicamente cuando las dos entradas valen 1.
- NOR: es OR con la salida negada. Devuelve 1 únicamente cuando las dos entradas valen 0.
- XNOR (equivalencia): es XOR negada. Devuelve 1 cuando las dos entradas coinciden.
| Entrada A | Entrada B | A NAND B | A NOR B | A XNOR B |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 0 | 1 |
Compara esta tabla con la anterior columna a columna: son las mismas salidas del revés. Esa es toda la regla, y es la forma de no tener que memorizar cuatro tablas más. En el símbolo del circuito la negación se dibuja como un círculo pequeño pegado a la salida de la puerta.
NAND y NOR tienen además una propiedad que se pregunta: son puertas universales. Con puertas NAND solas, o con puertas NOR solas, se puede construir cualquier función lógica, incluidas AND, OR y NOT. De ahí que la electrónica real se fabrique a base de ellas.
Las negadas se calculan en dos pasos: primero la puerta base y después la vuelta. Y ojo al matiz de NOR frente a NAND: NOR da 1 solo con dos ceros, NAND da 0 solo con dos unos.
Practica las puertas
sin responder todavía
Sale una operación y tú das el bit de salida. Apaga las puertas que no quieras practicar y el sorteo deja de proponerlas.
1AND0=?
Para el examen
NOT: una sola entrada: devuelve el bit contrario
NAND: 0 solo cuando las dos entradas son 1
NOR: 1 solo cuando las dos entradas son 0
XNOR: 1 cuando las entradas coinciden
Puertas universales: NAND y NOR: con una sola de ellas se construye cualquier función