Inicio · Parte 01 — Aritmética computacional y representación numérica
n = Σ bᵢ·2ⁱ con bᵢ ∈ {0,1}
restos de n/2 leídos de abajo arriba = representación binaria
El algoritmo de divisiones sucesivas no es un truco: es la construcción directa de la representación posicional. Al dividir n entre 2, el resto es el bit menos significativo —dice si n es par o impar— y el cociente es el número «desplazado un bit a la derecha». Repetir hasta llegar a cero produce todos los bits, del menos al más significativo, y por eso se leen al revés.
La representación es única: todo entero positivo tiene exactamente una escritura en base 2. Esa unicidad es la que permite que dos máquinas distintas interpreten los mismos bits como el mismo número, y es la que se pierde en punto flotante, donde varios reales distintos comparten representación.
El mismo algoritmo funciona en cualquier base cambiando el divisor. En base 16 los restos van de 0 a 15 y se escriben con dígitos hexadecimales; en base 8, de 0 a 7. La clase 023 explota que 16 y 8 son potencias de 2 para convertir sin dividir.
Un detalle práctico: Python trae la conversión en format(n, "b") y int(s, 2), pero implementarla a mano una vez deja claro por qué el bit menos significativo es la paridad, hecho que se usará constantemente en la parte 04 (aritmética modular) y en cualquier manipulación de bits.
Convertir 156 a binario por divisiones sucesivas.
156 / 2 = 78 resto 0 ← bit menos significativo
78 / 2 = 39 resto 0
39 / 2 = 19 resto 1
19 / 2 = 9 resto 1
9 / 2 = 4 resto 1
4 / 2 = 2 resto 0
2 / 2 = 1 resto 0
1 / 2 = 0 resto 1 ← bit más significativo
Leídos de abajo arriba: 10011100
Verificación: 128 + 16 + 8 + 4 = 156 ✓
(2⁷ + 2⁴ + 2³ + 2²)
Divisiones sucesivas frente a la conversión de la biblioteca.
python classes/part-01-aritmetica-computacional-y-representacion-numerica/022-conversion-decimal-a-binario/lab.py
compmath run 022
decimalrestos_en_orden_de_calculobinario_manualbinario_builtincoincidenreconstruido{
"decimal": 156,
"restos_en_orden_de_calculo": [
0,
0,
1,
1,
1,
0,
0,
1
],
"binario_manual": "10011100",
"binario_builtin": "10011100",
"coinciden": true,
"reconstruido": 156
}
Máscaras de bits, permisos de sistema de archivos, banderas de configuración, direcciones de red y cualquier serialización binaria. Es el prerrequisito de la representación IEEE 754.
float32, bfloat16 y la cuantización a int8 son decisiones de representación. Los NaN en un entrenamiento casi siempre nacen aquí, no en la arquitectura.
bin, int y format — documentación de la herramienta que ejecuta el laboratorio · URL de la fuente primaria comprobada en Python Software Foundation (2026-08-19).