Convertidor de Bases

Convertir entre bases numéricas

Entendiendo Sistemas de Bases Numéricas
TL;DR

Las bases numéricas son diferentes formas de representar el mismo valor. Decimal (base 10) es para humanos, binario (base 2) es para computadoras, hexadecimal (base 16) conecta ambos mundos.

¿Qué son las Bases Numéricas?

Una base numérica (o radix) define cuántos dígitos únicos se utilizan para representar números en un sistema numérico posicional. En la vida cotidiana, usamos base 10 (decimal) con los dígitos 0 a 9. Las computadoras operan en base 2 (binario) con solo 0 y 1. Los programadores frecuentemente usan base 16 (hexadecimal) con los dígitos 0-9 y las letras A-F como una forma compacta de representar datos binarios.

La idea clave es que todas estas bases representan los mismos valores subyacentes — solo escritos de manera diferente. El número decimal 42 es 101010 en binario, 2A en hexadecimal y 52 en octal. El número en sí no cambia; solo cambia su representación.

En un sistema posicional, el valor de cada dígito depende de su posición. En decimal, el número 255 significa (2 x 10^2) + (5 x 10^1) + (5 x 10^0) = 200 + 50 + 5. En binario, 11111111 significa (1 x 2^7) + (1 x 2^6) + … + (1 x 2^0) = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. El mismo principio se aplica a cualquier base.

Binario, Octal y Hexadecimal

Binario (Base 2)

El binario es el lenguaje nativo de la electrónica digital. Cada procesador, cada chip de memoria, cada paquete de red opera con datos binarios — secuencias de 0s y 1s. Cada dígito binario se llama bit, y 8 bits forman un byte.

DecimalBinarioBits
001 bit
111 bit
1010104 bits
421010106 bits
12711111117 bits
255111111118 bits (1 byte)

El binario es fundamental pero poco práctico para que los humanos lo lean en grandes cantidades. Una dirección IP de 32 bits en binario es 11000000101010000000000100000001 — comparada con su forma decimal 192.168.1.1 o su forma hex C0A80101.

Octal (Base 8)

El octal usa los dígitos 0-7. Cada dígito octal corresponde exactamente a 3 bits binarios, lo que hace que la conversión entre binario y octal sea directa. El octal era más común en la computación temprana (PDP-8, Unix), y su legado más visible hoy son los permisos de archivos en Unix.

OctalBinarioPermiso
0000--- (ninguno)
1001--x (ejecución)
4100r-- (lectura)
5101r-x (lectura + ejecución)
6110rw- (lectura + escritura)
7111rwx (todos)

Así que chmod 644 significa: propietario = rw- (6), grupo = r— (4), otros = r— (4).

Hexadecimal (Base 16)

El hexadecimal (hex) usa los dígitos 0-9 y las letras A-F (donde A=10, B=11, …, F=15). Cada dígito hex representa exactamente 4 bits binarios (un nibble), y dos dígitos hex representan exactamente 1 byte. Esta correspondencia 1:1 entre dígitos hex y nibbles es la razón por la que hex es el formato universal para representar datos binarios de manera legible para humanos.

DecimalHexBinario
000000
991001
10A1010
15F1111
255FF11111111
256100100000000

Los valores hex se prefijan típicamente para distinguirlos del decimal: 0xFF (C/JavaScript), #FF5733 (colores CSS), U+00E9 (puntos de código Unicode), o simplemente se escriben con una h al final en lenguaje ensamblador.

Usos Prácticos

Las bases numéricas aparecen en todo el desarrollo de software y la administración de sistemas:

  • Colores CSS: El color hex #FF5733 se descompone en Rojo=FF (255), Verde=57 (87), Azul=33 (51). Cada par de dígitos hex representa un byte de intensidad de color, que va de 00 (0) a FF (255)
  • Direcciones de memoria y depuración: Los depuradores y editores hexadecimales muestran la memoria en hexadecimal porque cada byte se representa limpiamente con dos dígitos. Una dirección de memoria de 64 bits como 0x7FFF5FBFF8A0 es mucho más legible que su equivalente binario
  • Configuración de red: Las direcciones IPv4 son decimales (192.168.1.1), pero las máscaras de subred son más claras en binario (255.255.255.0 = 11111111.11111111.11111111.00000000). Las direcciones MAC usan hex (00:1A:2B:3C:4D:5E). Las direcciones IPv6 son completamente hexadecimales
  • Puntos de código Unicode: Los caracteres se identifican por puntos de código hex (U+0041 = “A”, U+00E9 = “e con acento”, U+1F600 = emoji de cara sonriente)
  • Firmas de archivos (bytes mágicos): Los formatos de archivo se identifican por sus primeros bytes en hex. Un archivo PNG comienza con 89 50 4E 47, un PDF con 25 50 44 46 (que es %PDF en ASCII)
  • Operaciones a nivel de bits y banderas: Las banderas de características, máscaras de bits de permisos y registros de hardware se expresan en hex o binario porque cada bit tiene un significado individual. Por ejemplo, un byte de banderas TCP de 0x12 = 00010010 = SYN+ACK

Casos de Uso Comunes

  • Conversión de colores: Los desarrolladores web convierten regularmente entre códigos de color hex (#RGB), valores RGB decimales (rgb(255, 87, 51)) y representaciones HSL. Entender hex hace que la manipulación de colores sea intuitiva
  • Depuración de protocolos binarios: El análisis de paquetes de red (Wireshark), el análisis de firmware y la ingeniería inversa requieren leer datos hexadecimales. Convertir entre hex, binario y decimal es una habilidad esencial
  • Gestión de permisos de archivos: Los administradores de sistemas usan notación octal diariamente para comandos chmod. Entender que 755 = rwxr-xr-x requiere conocer la conversión de octal a binario
  • Manipulación de banderas de bits: Combinar banderas con OR (0x01 | 0x04 = 0x05), verificar banderas con AND (value & 0x04) y alternar con XOR requieren familiaridad con binario y hexadecimal
  • Inspección de codificación de datos: Al depurar problemas de Base64, codificación URL o codificación de caracteres, examinar los valores de bytes sin procesar en hex es a menudo el camino más rápido para entender el problema

Prueba estos ejemplos

Decimal 255 en Múltiples Bases Válido

Decimal 255 = hexadecimal FF = binario 11111111 = octal 377. Este valor es significativo porque representa el valor máximo de un solo byte sin signo (8 bits), comúnmente visto en valores de color RGB y máscaras de subred.

255
Entrada No Numérica Inválido

La cadena 'XYZ' no es un número válido en ninguna base estándar (hasta base 36). Aunque X, Y y Z son dígitos válidos en las bases 34-36 respectivamente, la entrada debe especificar en qué base se debe interpretar.

XYZ