Conversor de base numérica y complemento a dos

Tus datos

Un 0b, 0o o 0x delante se acepta y se ignora, y lo mismo con espacios y guiones bajos entre los dígitos.

Resultados

Cuánto valen esos bits, leídos como elegiste

Esos mismos bits, leídos de la otra manera
En binario
En hexadecimal
En octal
Todo lo que cabe en este ancho

Negándolo, paso a paso

Parte de los bits
Invierte todos
Suma uno, y ese es el negativo
Lo que da

Invertir los bits y sumar uno es lo mismo que restar de dos elevado al ancho, y se comprobó en los doscientos cincuenta y seis patrones de ocho bits. Hacerlo dos veces siempre devuelve lo que se empezó, que es la propiedad que hace funcionar todo el esquema.

Esta página cuenta con números enteros de cualquier tamaño, y no con el punto flotante de siempre, porque a partir de unos nueve mil billones el tipo común empieza a saltarse valores: dos elevado a cincuenta y tres más uno sale como dos elevado a cincuenta y tres. En sesenta y cuatro bits eso daría respuestas equivocadas en silencio.

Reacciones

0

0 Comentarios

User profile image

Se el primero en comentar

¿Por qué 200 sale como menos 56?

Porque 200 y menos 56 son los mismos ocho bits: 11001000. Nada en esos bits dice cuál de los dos querías. El ancho y la lectura se deciden en otro sitio, por quien escribió el programa, y los bits sirven a las dos respuestas.

La diferencia entera es el bit de más a la izquierda. Mientras está apagado, las dos lecturas coinciden exactamente, y por eso el desencuentro queda invisible hasta que un valor pasa de la mitad.

¿Por qué el rango va de menos 128 a 127 y no de menos 127 a 127?

Porque el cero tiene que vivir en algún sitio, y vive del lado positivo. Ocho bits dan 256 patrones distintos; uno se gasta en el cero, quedando 255 para repartir. El reparto es 127 positivos y 128 negativos, así que el lado negativo se lleva uno más.

Es igual en cualquier ancho: 16 bits van de menos 32768 a 32767, y 64 bits de menos 9223372036854775808 a 9223372036854775807.

¿Hay un número sin opuesto?

Sí, exactamente uno por ancho: el más negativo. Menos 128 en ocho bits no tiene gemelo positivo, porque 128 necesitaría una plaza que el lado positivo no tiene.

Invierte los bits de 10000000 y llegas a 01111111; suma uno y vuelves a 10000000. Negarlo devuelve el mismo número. Esta página lo muestra en lugar de esconderlo, y la propiedad se comprobó en 8, 16, 32 y 64 bits.

¿Qué pasa cuando el número no cabe?

Da la vuelta, y esta página muestra la vuelta en lugar de negarse. Escribir 300 en ocho bits guarda 44, y escribir menos 129 guarda 127.

No es la página siendo permisiva: es lo que hace el hardware. Mostrar un error escondería justo el comportamiento que causa el fallo que probablemente viniste a entender.