Una base numérica es cuántas cifras usas para escribir el mismo número
La base de numeración es la cantidad de cifras distintas que se usan en cada posición. El sistema decimal emplea diez, de 0 a 9, y cada lugar hacia la izquierda vale 10 veces más. El binario emplea dos, 0 y 1, y cada lugar vale el doble. Por eso 255 ocupa tres cifras en decimal, ocho en binario (1111 1111) y solo dos en hexadecimal (FF). El valor es el mismo: lo único que cambia es cómo se escribe.
Este convertidor coloca las casillas de binario, octal, decimal y hexadecimal junto a una casilla para cualquier base de 2 a 36, y reescribe todas las demás en cuanto modificas una. Convierte sin redondear números negativos, fracciones y números de hasta 1000 cifras, y marca entre paréntesis la parte periódica de una fracción binaria. El tablero de bits y el procedimiento de abajo muestran cómo guarda el ordenador el número y cómo se convertiría a mano.
Cuándo hace falta cambiar de base
Las personas contamos en decimal, pero el ordenador guarda cada valor como bits, es decir, ceros y unos. Las cadenas largas de bits son difíciles de leer, así que los programadores escriben cuatro bits como una cifra hexadecimal o tres bits como una cifra octal. Por eso se pasa de una base a otra en situaciones como estas.
- Códigos de color: el color CSS
#1E90FFda la intensidad de rojo, verde y azul con dos cifras hexadecimales para cada uno. 00 es la más baja y FF (255 en decimal) la más alta; 1E es 30 y 90 es 144. - Permisos de archivos: en el comando de Linux
chmod 755cada cifra es octal, y sus tres cifras binarias activan o desactivan lectura (4), escritura (2) y ejecución (1). El 7 es 111, así que lectura, escritura y ejecución están activadas; el 5 es 101, así que solo falta la escritura. - Redes: cada una de las cuatro partes de la máscara de subred 255.255.255.0 tiene 8 bits, de modo que en binario son 24 unos seguidos de 8 ceros. Por eso la misma máscara se abrevia como /24.
- Memoria y bytes: un byte (8 bits) cabe exactamente en dos cifras hexadecimales (00–FF). Por eso las direcciones de memoria, los hashes y el contenido de los archivos suelen mostrarse en hexadecimal.
- Interpretar negativos: el ordenador no guarda −5 como un signo más un 5. Con 8 bits guarda un patrón en complemento a dos como 1111 1011. Si ves FB en un registro, necesitas conocer el ancho y si lleva signo para saber si significa −5 o 251.
- Errores de redondeo decimal: 0.1 no termina nunca en binario, así que el ordenador guarda el valor más cercano posible. Por eso 0.1 + 0.2 en JavaScript da 0.30000000000000004 y no 0.3.
- Tareas de matemáticas: escribir y convertir números en base 5 o base 3 se resuelve con divisiones y valores posicionales. El panel de procedimiento muestra justo ese proceso.
Cómo se usa
- Escribe el número en la casilla de la base en la que está escrito. Para FF en hexadecimal usa la casilla hexadecimal; para 1010 en binario, la binaria. Las demás casillas se actualizan al instante.
- Para otra base, como 3, 5 o 36, elige la base (2–36) a la izquierda de la quinta casilla y escribe el número.
- Pon un − delante de un número negativo y escribe el separador decimal con punto (.). En una fracción periódica, las cifras que se repiten van entre paréntesis, como en 0.1(6). Los prefijos 0x, 0b y 0o, y las cifras agrupadas con espacios o guiones bajos (_), se pueden escribir tal cual.
- En el tablero de bits elige un ancho (8, 16, 32 o 64 bits) para ver el patrón en complemento a dos y en hexadecimal de ese ancho. Al tocar una casilla se invierte solo ese bit y el nuevo valor pasa a las casillas de arriba.
- En el procedimiento, elige la base de destino para ver la escalera de divisiones y la suma por valores posicionales. Los botones de copiar copian solo el valor, sin espacios de agrupación, y Copiar enlace crea una dirección que vuelve a abrir el valor actual.
Las cifras de cada base
Las bases mayores que 10 usan letras a partir del 10: A es 10, F es 15 y Z es 35, de modo que las letras llegan hasta la base 36. El int() de Python y el toString() de JavaScript también aceptan las bases de 2 a 36. Las mayúsculas y las minúsculas representan la misma cifra.
| Base | Cifras | 255 | Prefijo en código | Dónde se ve |
|---|---|---|---|---|
| Binario (2) | 0, 1 | 1111 1111 | 0b | Bits, indicadores, máscaras |
| Octal (8) | 0–7 | 377 | 0o | Permisos de archivos |
| Decimal (10) | 0–9 | 255 | ninguno | Números cotidianos |
| Hex (16) | 0–9, A–F | FF | 0x | Colores, memoria, hashes |
| Base 36 | 0–9, A–Z | 73 | ninguno | Identificadores cortos |
De base n a decimal: multiplicar por el valor posicional y sumar
Empezando por la cifra de la derecha, multiplica las cifras por n⁰, n¹, n², … en orden y suma todo. El hexadecimal 1ED es 1 × 16² + 14 × 16¹ + 13 × 16⁰ = 256 + 224 + 13 = 493. Las cifras después de la coma decimal se multiplican por n⁻¹, n⁻², …, así que el binario 0.101 es 1/2 + 0/4 + 1/8 = 0.625.
| Posición | 16² | 16¹ | 16⁰ | Suma |
|---|---|---|---|---|
| Cifra | 1 | E (14) | D (13) | |
| Valor posicional | 256 | 16 | 1 | |
| Cifra × valor posicional | 256 | 224 | 13 | 493 |
De decimal a base n: dividir la parte entera, multiplicar la decimal
Para la parte entera, divide entre n y anota el resto al lado de cada paso; después divide el cociente entre n otra vez. Para cuando el cociente sea menor que n y lee los restos de abajo arriba, empezando por el último cociente. Es la escalera de divisiones que se enseña en la escuela, y el panel de procedimiento de arriba la dibuja con la misma forma.
| División | Cociente | Resto |
|---|---|---|
| 13 ÷ 2 | 6 | 1 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| Leer hacia arriba | 1101 |
La parte decimal se trata al revés: se multiplica por n. Anota la parte entera del producto y vuelve a multiplicar por n la parte decimal que queda, hasta que llegue a 0. De 0.625 × 2 = 1.25 sale 1, de 0.25 × 2 = 0.5 sale 0 y de 0.5 × 2 = 1 sale 1. Leídas de arriba abajo, esas cifras dan 0.101.
Fracciones que no terminan en binario
Escribe la fracción irreducible. Si todos los factores primos del denominador son también factores primos de la base, el desarrollo termina; si hay aunque sea uno distinto, las mismas cifras se repiten sin fin. El único factor primo de 2 es 2, así que 0.5, 0.25 y 0.125, cuyos denominadores son potencias de 2, terminan. En cambio 0.1 = 1/10 tiene un 5 en el denominador, y por eso 0011 se repite sin fin, como en 0.0(0011). Es la misma razón por la que 1/3 no termina en decimal y queda 0.333…
| Decimal | Fracción | Binario | Hex |
|---|---|---|---|
0.5 | 1/2 | 0.1 | 0.8 |
0.25 | 1/4 | 0.01 | 0.4 |
0.125 | 1/8 | 0.001 | 0.2 |
0.75 | 3/4 | 0.11 | 0.C |
0.1 | 1/10 | 0.0(0011) | 0.1(9) |
0.2 | 1/5 | 0.(0011) | 0.(3) |
0.3 | 3/10 | 0.0(1001) | 0.4(C) |
0.(3) | 1/3 | 0.(01) | 0.(5) |
El número de coma flotante del ordenador (IEEE 754 de doble precisión) redondea a 53 cifras binarias significativas, de modo que 0.1 no se guarda como exactamente 1/10, sino como 0.1000000000000000055511151231257827021181583404541015625. Por eso sumar 0.1 tres veces no da exactamente 0.3. Esta herramienta guarda los valores como fracciones, así que muestra la parte periódica sin ningún redondeo.
De binario a octal y hexadecimal: agrupar cifras
Como 16 es 2⁴ y 8 es 2³, al agrupar las cifras binarias de cuatro en cuatro desde la derecha se obtiene una cifra hexadecimal por grupo, y de tres en tres, una cifra octal. No hace falta pasar por el decimal. Por ejemplo, 1 1110 1101 rellenado con ceros es 0001 1110 1101, que se lee 1·E·D, es decir, el hexadecimal 1ED; agrupado de tres en tres es 111 101 101, el octal 755.
| Binario | Hex | Binario | Hex | Binario | Hex | Binario | Hex |
|---|---|---|---|---|---|---|---|
0000 | 0 | 0100 | 4 | 1000 | 8 | 1100 | C |
0001 | 1 | 0101 | 5 | 1001 | 9 | 1101 | D |
0010 | 2 | 0110 | 6 | 1010 | A | 1110 | E |
0011 | 3 | 0111 | 7 | 1011 | B | 1111 | F |
Números negativos y complemento a dos
Las casillas de arriba escriben un número negativo con signo y magnitud, como −5. Sin embargo, la variable entera de un ordenador no tiene un signo aparte: guarda el complemento a dos. Si inviertes todos los bits del patrón positivo y sumas 1, obtienes el negativo del mismo tamaño. Con 8 bits, el 5 es 0000 0101; al invertir los bits sale 1111 1010 y, al sumar 1, 1111 1011 (hexadecimal FB), que es −5. Si el bit de la izquierda es 1, el número se lee como negativo; el mismo 1111 1011 leído sin signo es 251.
| Patrón de 8 bits | Hex | Sin signo | Complemento a dos |
|---|---|---|---|
0111 1111 | 7F | 127 | 127 |
0000 0001 | 01 | 1 | 1 |
0000 0000 | 00 | 0 | 0 |
1111 1111 | FF | 255 | −1 |
1111 1011 | FB | 251 | −5 |
1000 0000 | 80 | 128 | −128 |
| Ancho | Sin signo | Complemento a dos | Tipo de Java |
|---|---|---|---|
| 8 bits | 0 ~ 255 | −128 ~ 127 | byte |
| 16 bits | 0 ~ 65 535 | −32 768 ~ 32 767 | short |
| 32 bits | 0 ~ 4 294 967 295 | −2 147 483 648 ~ 2 147 483 647 | int |
| 64 bits | 0 ~ 18 446 744 073 709 551 615 | −9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 | long |
Si un valor no cabe en el ancho elegido, se recortan los bits superiores. Si metes 300 en 8 bits, solo quedan los ocho bits inferiores, 0010 1100, que valen 44. Elige el ancho 8 en el tablero de bits para ver el patrón recortado junto con un aviso.
Errores frecuentes
- Escribir en la base equivocada: 1010 en la casilla decimal es mil diez; solo vale diez si lo escribes en la casilla binaria. Las mismas cifras significan valores completamente distintos según la base en que se lean.
- Poner un prefijo en otra casilla: 0x indica hexadecimal, por lo que la casilla decimal no puede leerlo. En ese caso la herramienta muestra un botón que pasa el número a la casilla hexadecimal.
- Letra O frente a cero, l minúscula frente a uno: la O es la cifra 24 y la L es la cifra 21, así que solo existen en la base 25 y en la base 22 o superiores. El hexadecimal solo llega hasta la F.
- Escribir la coma decimal como en español: en español se escribe 0,5, pero esta herramienta y los lenguajes de programación usan el punto: 0.5. La coma no se admite porque se confundiría con el separador decimal. Tampoco uses el punto como separador de miles: 1.024 se lee como 1 y 24 milésimas, no como mil veinticuatro; escribe 1024 o 1 024.
- Ceros a la izquierda: 0755 y 755 son el mismo número. Sin embargo, en código C un entero que empieza por 0 se lee como octal, así que no pongas un 0 delante de un número decimal.
- Leer el complemento a dos sin un ancho: FB es −5 en complemento a dos de 8 bits, pero como valor de 16 bits, 00FB, es 251. Hay que saber cuántos bits tiene el valor para decidir si es negativo.
Límites
- Los números pueden tener hasta 1000 cifras. Los números normales de JavaScript pierden precisión por encima de 2⁵³ − 1 (9 007 199 254 740 991), pero esta herramienta calcula con fracciones BigInt y el resultado sigue siendo exacto hasta la última cifra fuera de ese rango.
- Si la parte decimal no termina ni empieza a repetirse en 256 cifras, el resto se acorta con …. El cálculo usa fracciones, así que no se acumula error en las demás casillas, pero si editas una casilla acortada con …, solo se leen las cifras que se muestran.
- El tablero de bits dibuja solo enteros, hasta 128 bits. Para un número mayor, consulta el valor completo en la casilla binaria.
- No cubre la disposición de bits de los números de coma flotante (IEEE 754), la coma fija, las bases negativas ni operaciones como sumar o restar números en otras bases.
- Todo el cálculo se hace en este navegador y los valores que escribes no se envían a ningún servidor.
Base: las reglas de bases y prefijos proceden de la documentación de Python y de la especificación ECMAScript, los rangos del complemento a dos de la especificación del lenguaje Java, y los ejemplos de permisos, colores y redes de documentos de POSIX, CSS y RFC, todo comprobado el 22 de octubre de 2026. Los valores de las tablas se recalcularon con el núcleo de cálculo de esta herramienta y se compararon.
Fuentes
- 01Python: int()Bases permitidas 2–36, a–z para 10–35, prefijos 0b, 0o y 0x, guiones bajos entre cifras
- 02ECMA-262: Number.prototype.toStringLa base (radix) es un entero de 2 a 36
- 03MDN: Number.prototype.toString()Una base menor que 2 o mayor que 36 lanza un RangeError
- 04MDN: BigIntEnteros demasiado grandes para un número normal
- 05MDN: Number.MAX_SAFE_INTEGEREl mayor entero que se maneja con exactitud, 2⁵³ − 1
- 06Tutorial de Python: Floating-Point Arithmetic1/10 se repite sin fin en binario y se guarda como aproximación de 53 bits
- 07Especificación de Java 4.2.1: Integral Types and ValuesEnteros de 8, 16, 32 y 64 bits en complemento a dos y sus rangos
- 08POSIX: chmodBits de permisos en octal (0400 lectura, 0200 escritura, 0100 ejecución)
- 09CSS Color Module Level 4: hex notation#rrggbb da rojo, verde y azul con dos cifras cada uno; ff es 255
- 10RFC 4632 3.1: Basic Concept and Prefix Notation/24 significa que los primeros 24 bits son 1 y los últimos 8 son 0
- 11cppreference: Integer constant (C)Una constante entera que empieza por 0 es octal
Preguntas frecuentes
¿Cómo se pasa de decimal a binario?
Divide entre 2 y anota el resto al lado de cada paso; luego vuelve a dividir el cociente entre 2 hasta que el cociente sea 1. Lee los restos de abajo arriba, desde el último cociente. Con 13 salen 6 resto 1, 3 resto 0 y 1 resto 1, así que el binario es 1101.
¿Cómo se pasa de binario a decimal?
Desde la cifra de la derecha, multiplica cada cifra por 1, 2, 4, 8, 16 y así sucesivamente (potencias de 2) y suma los resultados. 1010 es 8 + 0 + 2 + 0 = 10, y 1111 1111 suma de 128 a 1 y da 255.
¿Cuánto es FF hexadecimal en decimal?
255. La F vale 15, así que FF es 15 × 16 + 15 = 255. En binario es 1111 1111 y en octal 377. Es el mayor valor que cabe en un byte, y por eso FF es el nivel más alto en un código de color.
¿Cómo se escriben los números negativos en binario?
En papel se pone un − delante, como en −101, pero el ordenador guarda el complemento a dos: se invierten todos los bits del número positivo y se suma 1. Con 8 bits, el −5 sale de invertir 0000 0101 para obtener 1111 1010 y sumar 1, lo que da 1111 1011 (hexadecimal FB). En el tablero de bits puedes elegir el ancho y comprobarlo.
¿Por qué 0.1 no termina nunca en binario?
Porque 0.1 es 1/10 y el denominador contiene un 5. El binario solo tiene el factor primo 2, así que no puede escribir con exactitud un denominador con 5. Las cifras 0011 se repiten sin fin, como en 0.0(0011), y el ordenador las redondea a 53 bits; por eso 0.1 + 0.2 no es exactamente 0.3.
¿Hay un atajo para pasar de binario a hexadecimal u octal?
Sí. Agrupa las cifras binarias de cuatro en cuatro desde la derecha para el hexadecimal, o de tres en tres para el octal. 1 1110 1101 en grupos de cuatro es 0001 1110 1101, que es 1ED en hexadecimal; en grupos de tres es 111 101 101, que es 755 en octal.
¿Qué significan 0x, 0b y 0o?
Son prefijos que indican al código en qué base está un número: 0x para hexadecimal, 0b para binario y 0o para octal. Python y JavaScript los usan. Esta herramienta los lee al pegarlos y también los copia si activas la opción de prefijo.
¿Qué bases y cuántas cifras admite?
Todas las bases de 2 a 36. Las cifras de 10 a 35 se escriben de la A a la Z, y mayúsculas y minúsculas valen igual. Puedes introducir hasta 1000 cifras, y los números grandes se calculan con fracciones BigInt, por lo que son exactos hasta la última cifra.