Practica binario ↔ decimal jugando (juego de Cisco)
Antes de tocar direcciones IP, máscaras o subredes hay que hablar binario con soltura. La buena noticia: se entrena como un deporte, con repeticiones rápidas. Cisco tiene un juego online, gratuito y sin registro, perfecto para eso.
👉 Jugar al Binary Game (Cisco)
El juego está en inglés. Aquí tienes sus instrucciones traducidas, una mini-chuleta para resolver los puzles sin sufrir, y ejercicios para practicar fuera del juego.
Las instrucciones del juego, traducidas
Pantalla de bienvenida
BIENVENIDO/A AL JUEGO DEL BINARIO
¡Usa tus conocimientos de matemáticas binarias para resolver rápidamente tantos puzles como puedas!
Los puzles vienen en dos sabores:
PUZLES BINARIOS
PUZLES DECIMALES
Para acceder a más recursos de autoestudio de CCNA R&S, visita:
MATERIALES DE ESTUDIO DE CCNA R&S
[VOLVER AL MENÚ]
Puzles binarios
PUZLES BINARIOS
Así es un puzle binario.
Para resolver los puzles binarios, activa y desactiva los bits de la izquierda hasta que igualen el número de la derecha.
[VOLVER]
Puzles decimales
PUZLES DECIMALES
Así es un puzle decimal.
Para resolver los puzles decimales, haz clic en el signo de interrogación y usa el teclado numérico para introducir el número decimal que equivale al número binario de la izquierda.
[VOLVER]
Capturas del juego de Cisco Networking Academy, © Cisco. Se muestran solo con fines didácticos, para acompañar la traducción.
Mini-chuleta: los 8 bits de un byte
Cada posición vale el doble que la de su derecha (potencias de 2):
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Valor | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
En el juego, cada casilla que pones a 1 suma su valor; las que están a 0 no suman nada.
Puzle binario (te dan el decimal, tú pones los bits)
El ejemplo de la captura pide un 4. Con los 8 bits a cero salvo el último, solo suma 1, así que hay que moverlo:
128 64 32 16 8 4 2 1
0 0 0 0 0 1 0 0 → 4
Truco: recorre de izquierda a derecha y pregúntate «¿me cabe este valor en lo que me falta?». Si cabe, pon 1 y réstalo; si no, 0. Ejemplo con 100:
100 ≥ 128 ? no → 0
100 ≥ 64 ? sí → 1 (sobran 36)
36 ≥ 32 ? sí → 1 (sobran 4)
4 ≥ 16 ? no → 0
4 ≥ 8 ? no → 0
4 ≥ 4 ? sí → 1 (sobran 0)
0 ≥ 2 ? no → 0
0 ≥ 1 ? no → 0
→ 01100100
Puzle decimal (te dan los bits, tú escribes el número)
El ejemplo de la captura es 00001000: solo está activo el bit de valor 8, así que la respuesta es 8. En general: suma los valores de las casillas a 1.
Ejercicios (sin juego)
Binario → decimal:
0000101000100000110000001010101011111111
Decimal → binario:
51364200255
Ver soluciones
00001010= 8 + 2 = 1000100000= 3211000000= 128 + 64 = 19210101010= 128 + 32 + 8 + 2 = 17011111111= 255 (todos los bits a 1)- 5 =
00000101 - 13 =
00001101 - 64 =
01000000 - 200 =
11001000(128 + 64 + 8) - 255 =
11111111
Compruébalo con código
Dos funciones puras de una línea, para verificar tus respuestas:
const aDecimal = bits => parseInt(bits, 2);
const aBinario = n => n.toString(2).padStart(8, "0");
aDecimal("11000000"); // 192
aBinario(100); // "01100100"
Referencias en MDN: parseInt(), Number.prototype.toString() y String.prototype.padStart().
En Python es igual de corto:
a_decimal = lambda bits: int(bits, 2)
a_binario = lambda n: format(n, "08b")
a_decimal("11000000") # 192
a_binario(100) # '01100100'
¿Y esto para qué sirve en redes?
Una dirección IPv4 son 4 bytes (octetos), y cada uno es justo lo que practicas en el juego. Por ejemplo, 192.168.1.1 es:
11000000.10101000.00000001.00000001
Cuando veamos máscaras (255.255.255.0) y subredes, todo se reduce a saber qué bits están a 1. Más teoría: Sistema binario (Wikipedia).
Reto: juega hasta que resuelvas los puzles sin pensar, y apunta tu mejor marca. ¡Happy hacking! :-)
