Bases 2 a 36 · Gratis

Conversor de bases numéricas

Escribe un número en binario, octal, decimal, hexadecimal o cualquier base hasta 36 y léelo en todas las demás a la vez. Aritmética exacta de enteros grandes, conversión real de fracciones y el patrón de bits que ocuparía en un registro.

Cálculo BigInt exacto en tu navegador · No se sube nada

255 en base 10 es 255 en decimal.

Valor a convertir

Escríbelo en la base en la que ya lo tienes

Los espacios, guiones bajos y comas se ignoran, así que un valor agrupado se pega directamente. También se acepta un prefijo 0b, 0o o 0x que coincida con la base.

El mismo número, otras bases

255 en decimal

Binario · base 2
0b1111 1111
Octal · base 8
0o377
Decimal · base 10
255
Hexadecimal · base 16
0xff
Base 36 · base 36
73
8 bits de ancho8 bits a 1
En un registro

Complemento a dos con 8 bits

Patrón de bits
1111 1111
Sin signo
255
Con signo
-1
Hex
0xFF

Esto cabe en 8 bits sin signo, pero leído con signo es -1, porque el bit superior está a 1.

El desarrollo

Cada dígito multiplicado por su valor posicional

Un número en cualquier base es una suma: el dígito por la base elevada a la posición, contando desde cero por la derecha. Esta es esa suma para la parte entera, en base 10.

Dígito, valor posicional y aportación de cada dígito de la parte entera
DígitoValorPesoAporta
22102200
5510150
551005
Esas aportaciones suman 255 en decimal.
Todas las bases a la vez

De base 2 a base 36

Treinta y cinco formas de escribir la misma cantidad. Fíjate en cómo baja el número de dígitos a medida que sube la base: esa relación es un logaritmo, y es la única razón por la que existe el hexadecimal.

El mismo valor escrito en todas las bases de 2 a 36
BaseValorDígitos
2111111118
31001106
433334
520104
611034
75133
83773
93133
10La tuya2553
112123
121933
131683
141433
151203
16ff2
17f02
18e32
19d82
20cf2
21c32
22bd2
23b22
24af2
25a52
269l2
279c2
28932
298n2
308f2
31872
327v2
337o2
347h2
357a2
36732
Cómo funciona

Una cantidad, treinta y cinco formas de escribirla.

Una base no es más que la elección de cuántos símbolos contar antes de llevar una. La cantidad 255 no cambia cuando se escribe 11111111, 377 o FF; solo cambia la notación. Convertir consiste, por tanto, en dividir repetidamente entre la base de destino para la parte entera y en multiplicar repetidamente para la fracción, y aquí ambas operaciones se hacen con enteros exactos, no con números de coma flotante. Esa diferencia es todo el contenido técnico de esta herramienta: es la razón por la que un identificador de diecinueve dígitos sobrevive intacto a la conversión de ida y vuelta, y por la que una fracción decimal que no puede escribirse en binario se indica como periódica en lugar de redondearse en silencio a algo que parece limpio y es incorrecto.

  1. 01

    Escribe el número e indica en qué base está

    Binario, octal, decimal y hexadecimal están a un toque, y puedes escribir cualquier base de 2 a 36. Los espacios, guiones bajos y comas se ignoran, así que un valor agrupado se pega directamente desde un volcado hexadecimal o una hoja de cálculo. Se acepta un prefijo 0b, 0o o 0x que coincida con la base, y se elimina.

  2. 02

    Léelo en todas las demás bases a la vez

    Las cuatro bases habituales y una base de destino que tú eliges se actualizan mientras escribes, y cada una se puede copiar por separado. Debajo aparece el mismo valor escrito en las treinta y cinco bases de 2 a 36, para que veas cómo disminuye el número de dígitos en lugar de que te lo cuenten.

  3. 03

    Revisa el patrón de bits y el desarrollo

    El panel del registro muestra cómo quedaría el entero en 8, 16, 32 o 64 bits, con las lecturas con signo y sin signo una junto a otra. El panel del desarrollo descompone el número en cada dígito por la base elevada a su posición, que es la definición de la notación posicional y la forma más rápida de comprobar una conversión a mano.

Para firmware, códigos de color, permisos y deberes

Aritmética exacta, fracciones honestas y la vista del registro.

Exacto más allá del precipicio de la coma flotante

Cada conversión usa aritmética BigInt. Un conversor basado en los números normales de JavaScript se equivoca en silencio por encima de 9,007,199,254,740,992: pregúntale por 9007199254740993 y te devolverá el número par inmediatamente inferior. Es justo el tipo de valor que la gente pega desde un id de base de datos o un depurador, así que este lo conserva exacto, en cualquier base y con cualquier longitud de hasta 512 caracteres.

Fracciones convertidas por división, no por redondeo

La parte fraccionaria se guarda como un numerador exacto sobre la base elevada a su número de dígitos y luego se convierte multiplicando y dividiendo repetidamente. Así, 0.1 en decimal sale como 0.0001100110011… en binario y se marca como periódico en lugar de redondearse en silencio, que es la demostración más clara de por qué 0.1 más 0.2 no da 0.3 en la mayoría de los lenguajes.

Complemento a dos, desbordamiento incluido

Elige 8, 16, 32 o 64 bits y verás juntos el patrón almacenado, la lectura sin signo y la lectura con signo. Un valor demasiado grande para el ancho se ajusta por desbordamiento en lugar de rechazarse, porque eso es lo que hace el registro, y ver cómo 300 se convierte en 44 en un byte suele ser el motivo por el que se abrió el conversor.

Errores que nombran el dígito y la posición

Escribe un 9 en un número octal y el mensaje te dirá que 9 vale nueve, que la base 8 llega solo hasta 7, y señalará el carácter con un acento circunflejo debajo. Un conversor que simplemente borra el resultado te deja buscando la errata por tu cuenta.

Agrupación adaptada a la base

Bloques de cuatro y ocho bits para binario y hexadecimal, separadores de miles para decimal, y ninguno de ellos donde no tiene sentido. El resultado agrupado se copia tal como se muestra, con los prefijos 0b, 0o y 0x activados o no según vaya a ir en un texto o en código fuente.

Las treinta y cinco bases en una tabla

De base 2 a base 36, con el número de dígitos al lado de cada una. Hace evidente la relación logarítmica: un byte necesita 8 dígitos binarios, 3 decimales y 2 hexadecimales, que es precisamente por lo que el hexadecimal, y no el octal, se convirtió en la forma abreviada del binario.

Preguntas de base

Conversión a mano, letras hexadecimales, complemento a dos y por qué 0.1 se porta mal.

¿Cómo convierto de binario a decimal a mano?+

Multiplica cada dígito por dos elevado a su posición, contando desde cero por la derecha, y suma los resultados. Para 1011 eso es 1×8 + 0×4 + 1×2 + 1×1, que da 11. El método de duplicar es más rápido con valores largos: empieza por el dígito de la izquierda y, repetidamente, duplica el total acumulado y suma el siguiente dígito. Para 1011 queda 1, luego 2+0 = 2, luego 4+1 = 5, luego 10+1 = 11. El panel del desarrollo de esta página expone el primer método dígito a dígito, para que puedas comprobar tus cuentas con él.

¿Por qué el hexadecimal usa letras?+

Porque la base 16 necesita dieciséis dígitos distintos y el sistema decimal solo aporta diez. De la A a la F se cubre el hueco, y representan del diez al quince. La razón de querer dieciséis es que 16 es 2 elevado a la cuarta, así que exactamente cuatro dígitos binarios corresponden a un dígito hexadecimal, sin resto ni acarreo entre ellos. Por eso un byte siempre son dos caracteres hexadecimales, y por eso los volcados de memoria, los códigos de color y las direcciones MAC se escriben así. El octal tiene la misma propiedad con tres bits por dígito, y perdió frente al hexadecimal sobre todo porque los bytes tienen ocho bits y no nueve.

¿Qué es el complemento a dos y por qué no usar simplemente un bit de signo?+

El complemento a dos guarda un número negativo como el patrón que, sumado a su equivalente positivo, hace que el registro vuelva a cero por desbordamiento. En ocho bits, menos uno es 11111111, porque 11111111 más 00000001 se desborda a 00000000. La razón para preferirlo a un simple bit de signo es que la suma y la resta ya no necesitan casos especiales: el mismo circuito sumador maneja ambos signos y la comparación sigue funcionando. Una representación de signo y magnitud además produce dos ceros, positivo y negativo, que todo el código tiene que acordarse de manejar.

¿Por qué 0.1 no es exacto en binario?+

Por la misma razón que un tercio no es exacto en decimal. Una fracción termina en una base dada solo cuando todos los factores primos del denominador dividen a esa base. Diez se descompone en dos y cinco, así que las décimas, los quintos y los medios terminan en decimal. Dos solo se tiene a sí mismo, así que una fracción binaria termina solo cuando el denominador es una potencia de dos. Un décimo no lo es, así que 0.1 se convierte en 0.000110011001100… repetido para siempre, y cualquier formato de ancho fijo tiene que cortarlo en algún punto. Ese truncamiento es lo que hace que 0.1 más 0.2 dé 0.30000000000000004 en la mayoría de los lenguajes. Escribe 0.1 aquí con decimal como base de origen y la fila del binario mostrará la repetición directamente.

¿Para qué sirve la base 36?+

Es la base más grande que cabe en los dígitos del 0 al 9 más las veintiséis letras del alfabeto latino, así que es la forma más compacta de escribir un número que sigue sin distinguir mayúsculas y se puede teclear. Eso la hace útil para identificadores cortos y slugs de URL: un valor que necesita diez dígitos decimales cabe en seis caracteres en base 36. En la práctica a menudo se prefiere la base 32, porque elimina los caracteres que se confunden a simple vista y encaja limpiamente en cinco bits, y la base 62 va más allá al distinguir mayúsculas y minúsculas, a costa de identificadores que no se pueden dictar por teléfono.

¿Puedo convertir un número negativo?+

Sí. Escribe un signo menos delante y todas las bases mostrarán el mismo signo, ya que el signo menos es una propiedad del valor y no de la notación. El panel del registro es donde se pone interesante, porque un registro de ancho fijo no tiene carácter de signo: guarda en su lugar el patrón en complemento a dos, así que menos 42 en ocho bits es 11010110, que leído sin signo es 214. Ambas lecturas se muestran juntas, junto con una nota que explica cuál te dará tu lenguaje según el tipo sea con signo o sin signo.

¿Qué pasa si mi número es demasiado grande para el ancho elegido?+

Se desborda y vuelve a empezar, y la página lo indica. Trescientos no cabe en ocho bits, así que el registro guarda 44, que es 300 menos 256. No es un error del conversor, es lo que hace el hardware, y reproducirlo es más útil que negarse a responder. Las conversiones que aparecen por encima del panel del registro no se ven afectadas: son exactas y sin límite, hasta el máximo de 512 caracteres de entrada.

¿El conversor acepta los prefijos 0x y 0b?+

Sí, cuando el prefijo coincide con la base seleccionada. 0x1F en una casilla configurada en hexadecimal se lee como 31; la misma cadena con la base en binario es una discrepancia real, así que la x se indica como dígito no válido en lugar de ignorarse en silencio. Los prefijos de salida son un interruptor aparte: actívalos cuando el valor vaya a ir en código fuente y desactívalos cuando vaya en un texto o en una celda de hoja de cálculo.

¿Por qué hay menos dígitos cuanto mayor es la base?+

Porque el número de dígitos es un logaritmo. Escribir un número n en base b requiere aproximadamente logaritmo en base b de n dígitos, así que subir la base reduce la cantidad, pero solo poco a poco: duplicar la base te ahorra un único dígito por cada dígito binario de crecimiento. Por eso 255 necesita ocho dígitos binarios, tres decimales y dos hexadecimales, y por eso la tabla de todas las bases de esta página se encoge rápido de base 2 a base 10 y luego apenas cambia de base 20 a base 36.

¿Se envía algo a un servidor?+

No. Toda la aritmética se ejecuta en esta pestaña con el BigInt integrado de JavaScript, y ninguna conversión hace peticiones. Los valores pegados desde un depurador, un id interno o la huella de una clave privada se quedan en tu equipo.

Más herramientas especializadas, listas cuando las necesites.

Explora una colección cada vez más amplia para cálculos, documentos, escritura y el trabajo diario.

Ver todas las herramientas