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.