UTILS.
100% en el navegador
🔢

Conversor de complemento a dos

Convierte enteros con signo a/desde binario y hex en complemento a dos con anchos de 4, 8, 16, 32 o 64 bits, con complemento a uno e interpretación sin signo.

Introduce un número o patrón de bits arriba.

Acerca de esta herramienta

El Conversor de complemento a dos codifica un entero con signo en su representación binaria y hexadecimal en complemento a dos con el ancho de bits que elijas (4, 8, 16, 32 o 64 bits), y decodifica un patrón binario o hex de vuelta al valor con signo que representa. Usa BigInt en todo momento, así que los valores de 64 bits se manejan exactamente sin pérdida de precisión.

Para un ancho de N bits el rango con signo es −2^(N−1) a 2^(N−1)−1. Para codificar un decimal d: si d es no negativo el patrón es simplemente d; si d es negativo el patrón es 2^N + d (equivalentemente, invierte todos los bits de |d| y suma 1). La herramienta produce el binario de N bits con ceros a la izquierda, el hex de N/4 dígitos, el complemento a uno (NOT bit a bit), y la interpretación sin signo de los mismos bits, y marca un error de desbordamiento cuando un valor no cabe en el ancho seleccionado.

Para decodificar, pega un patrón binario o hex y la herramienta lee su bit superior: si el bit más significativo está activado el valor es patrón − 2^N (negativo), de lo contrario es el propio patrón. Siempre muestra las lecturas con signo y sin signo lado a lado, que es exactamente la ambigüedad que el complemento a dos resuelve a nivel de hardware. Todo el cálculo es local en tu navegador.

Preguntas frecuentes

¿Cuál es el rango para cada ancho de bits?
Un ancho de N bits representa valores con signo de −2^(N−1) a 2^(N−1)−1. Así que 8 bits abarca −128 a 127, 16 bits −32768 a 32767, y 32 bits unos ±2.1 mil millones. Los valores fuera del rango activan una advertencia de desbordamiento.
¿Cómo se codifica un número negativo?
Toma la magnitud, invierte cada bit (complemento a uno), y suma 1. Equivalentemente el patrón es igual a 2^N más el número negativo. Por ejemplo −1 en 8 bits es 11111111, y −42 es 11010110.
¿Por qué mostrar también el valor sin signo?
El mismo patrón de bits tiene dos lecturas: con signo (complemento a dos) y sin signo. Mostrar ambas deja claro que, por ejemplo, el patrón de 8 bits 11111111 es −1 con signo pero 255 sin signo; la interpretación depende de cómo lo trate el hardware.
¿Puede manejar valores de 64 bits exactamente?
Sí. El conversor usa aritmética BigInt de precisión arbitraria, así que los patrones de 64 bits y sus valores con signo se calculan exactamente sin el redondeo que los números ordinarios de JavaScript introducirían más allá de 2^53.

Más herramientas