MiServe DevTools

Tus pegatinas

Fija aquí tus herramientas. Se guardan en este navegador.

Conversor de bases numéricas

Convierte un entero de cualquier tamaño entre binario, octal, decimal, hexadecimal y cualquier base de 2 a 36, con sus formas en complemento a dos.

Longitud en bits del valor absoluto
Bits necesarios como entero con signo (complemento a dos)
Como entero de ancho fijo (complemento a dos)
AnchoHexBinarioLeído con signoLeído sin signo
8 bits
16 bits
32 bits
64 bits

Funciona en tu navegador. Nada de lo que pegas se sube.

Acerca de esta herramienta

El mismo número en distintas bases

Una base, o raíz, es el número de dígitos distintos que usa una notación posicional. El decimal tiene diez, el binario dos, el octal ocho y el hexadecimal dieciséis, para lo que toma prestadas las letras de la a a la f para los valores del diez al quince. Las bases de hasta 36 siguen por el alfabeto hasta la z.

El binario es la forma en que el hardware guarda los números. El hexadecimal es su forma compacta de escribirlos, ya que un dígito hexadecimal equivale exactamente a cuatro bits y dos equivalen a un byte. El octal se sigue usando para los permisos de archivo de Unix, donde cada dígito equivale a tres bits.

Todos los campos de esta página muestran el mismo entero. Edita cualquiera de ellos y los demás se actualizan.

Qué puedes escribir

Los dígitos pueden ir separados por espacios o guiones bajos, como en 1111_0000 o 1 000 000, y el número puede empezar con un signo menos. Los prefijos 0b, 0o y 0x seleccionan binario, octal y hexadecimal siempre que la letra no sea a su vez un dígito del campo: 0xff escrito en el campo decimal se lee como 255, mientras que 0b1 en el campo hexadecimal es el número hexadecimal B1.

La conversión usa BigInt de JavaScript, un tipo de entero de precisión arbitraria, así que no se redondea nada. El único límite de tamaño es el que el motor de JavaScript del navegador impone a un BigInt, y un número que lo supera se indica en su campo. Los números por encima de 9 007 199 254 740 991, donde los números normales de JavaScript empiezan a perder precisión, se convierten con exactitud. Solo se admiten enteros, no fracciones.

Números negativos y complemento a dos

Los campos muestran un número negativo como un signo menos seguido de su valor absoluto. En memoria se guarda de otra forma: en complemento a dos, un valor negativo se guarda como ese valor más dos elevado al ancho. En 8 bits esa potencia es 256, así que -1 se guarda como 255, que es ff, y -128 como 128, que es 80.

La tabla muestra el patrón de bits para 8, 16, 32 y 64 bits siempre que el valor quepa, y lo que significa ese patrón al leerlo como entero con signo y sin signo. Por eso 255 y -1 comparten el patrón ff en 8 bits.

Preguntas

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

Cada dígito binario vale una potencia de dos, empezando por 1 a la derecha. Suma las potencias donde el dígito es 1: 1011 es 8 + 2 + 1, es decir, 11.

¿Por qué se usa tanto el hexadecimal en programación?

Un dígito hexadecimal representa exactamente cuatro bits, así que un byte son siempre dos dígitos hexadecimales. Eso hace que los volcados de memoria, los colores, los hashes y las máscaras de bits sean mucho más cortos que en binario y que sigan siendo fáciles de pasar a bits.

¿Qué tamaño de número admite este conversor?

La herramienta no fija ningún límite propio. Usa enteros de precisión arbitraria, así que los números de miles de dígitos se convierten con exactitud. Las entradas muy largas tardan más en calcularse, y el motor de JavaScript de cada navegador tiene un tamaño máximo para un entero. Un número que lo supera se indica en su campo.

¿Qué es el complemento a dos?

Es la forma en que casi todos los procesadores guardan los enteros con signo. El bit más alto tiene un peso negativo, así que un valor de 8 bits va de -128 a 127 y -1 se guarda como ocho bits a 1.

Más herramientas de Codificación