Mantén los valores enteros exactos y el signo explícito
Una base cambia la forma de escribir un valor, no el valor en sí. El decimal 255, el binario 11111111, el octal 377 y el hexadecimal FF describen el mismo entero no negativo. La notación posicional asigna a cada dígito una potencia de la base. Leyendo de izquierda a derecha, puedes construir el valor multiplicando el total acumulado por la base y sumando el siguiente dígito.
Los valores grandes requieren especial cuidado. Los números de coma flotante ordinarios de JavaScript no pueden representar exactamente todos los enteros por encima de 9.007.199.254.740.991. Este conversor acumula los dígitos mediante aritmética entera, de modo que un identificador como 9.007.199.254.740.993 conserva su último dígito. Los límites de entrada siguen vigentes para que el espacio de trabajo responda con fluidez; la aritmética exacta no implica un tamaño de entrada ilimitado.
Los patrones de bits con signo necesitan un ancho. En complemento a dos de ocho bits, FF representa menos uno; en dieciséis bits, 00FF representa 255 positivo. La entrada decimal en este modo se interpreta como el valor con signo que se va a codificar. La entrada de las otras bases se interpreta como un patrón de bits no negativo. El conversor rechaza el desbordamiento en lugar de descartar en silencio los bits altos, y muestra la interpretación de la primera fila válida.
Usa un entero por línea al convertir una lista. Las líneas en blanco se omiten, pero sus posiciones se mantienen reflejadas en los resultados. Las filas no válidas incluyen una explicación, mientras que las válidas siguen disponibles. Esta herramienta excluye deliberadamente los números fraccionarios, la notación científica y la decodificación de bytes a texto, ya que estas tareas implican reglas distintas. Para un mensaje codificado en bytes binarios o hexadecimales, utiliza en su lugar el traductor de texto relacionado.