¿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.