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.
¿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.
Reacciones
0
0 Comentarios
Se el primero en comentar