Guía Completa de Conversión entre Bases Numéricas
En informática, programación de sistemas y telecomunicaciones, la información numérica se codifica en distintas bases posicionales según la capa de hardware y la legibilidad para el desarrollador. Dominar la conversión entre Binario (base 2), Octal (base 8), Decimal (base 10) y Hexadecimal (base 16) es indispensable para depuración de memoria, tramas de red, criptografía y arquitectura de computadores.
1. Los 4 Sistemas Numéricos Fundamentales
- Binario (Base 2): Emplea exclusivamente los dígitos
0y1. Cada posición representa una potencia de 2 ($2^0, 2^1, 2^2, 2^3, \dots$). Es el lenguaje natural de los circuitos electrónicos digitales y las compuertas lógicas. - Octal (Base 8): Emplea dígitos del
0al7. Dado que $2^3 = 8$, cada dígito octal agrupa con precisión 3 bits binarios. Sigue utilizándose habitualmente en la asignación de permisos de archivos en Linux y Unix (ej:chmod 755). - Decimal (Base 10): El sistema numérico posicional estándar utilizado por el ser humano con dígitos del
0al9. - Hexadecimal (Base 16): Utiliza los dígitos del
0al9y las letrasAa laF(donde A=10, B=11, C=12, D=13, E=14, F=15). Al ser $2^4 = 16$, cada dígito hexadecimal equivale de manera exacta a 4 bits binarios (un nibble). Es la base estándar en direcciones de memoria RAM, colores web (#3B82F6), direcciones IPv6 y hashes criptográficos.
2. Tabla Rápida de Equivalencias (0 a 15 / 0 a F)
| Decimal (Base 10) | Binario (Base 2 - 4 bits) | Octal (Base 8) | Hexadecimal (Base 16) |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
3. Procedimientos de Conversión Manual
Hexadecimal a Binario: Sustituye cada carácter hexadecimal por su grupo de 4 bits. Por ejemplo, 0x2D: 2 es 0010, D (13) es 1101 → 00101101 (o 101101).
Binario a Decimal: Suma las potencias de 2 en cada posición que contenga un bit 1 comenzando desde la posición 0 a la derecha. Para 101101: $(1 \times 32) + (0 \times 16) + (1 \times 8) + (1 \times 4) + (0 \times 2) + (1 \times 1) = 32 + 8 + 4 + 1 = 45$.
Decimal a Hexadecimal: Divide el número decimal de forma sucesiva entre 16 anotando los restos. El último cociente y los restos leídos de abajo a arriba conforman la cifra hexadecimal.
Binario a Octal: Agrupa los bits de 3 en 3 empezando por la derecha y convierte cada bloque a su dígito del 0 al 7 (ej: 101 101 → 55 en octal = 45 en decimal).
4. Prefijos Estándar en Código y Programación
0bo0B: Indica literales binarios en lenguajes modernos como JavaScript, Python, Rust, Go y C++ (ej:0b101101).0oo0O: Indica literales octales (ej:0o77).0xo0X: Indica literales hexadecimales en prácticamente todos los entornos de desarrollo (ej:0x2D,0xFF).