Una calculadora bitwise trabaja sobre la palabra de 32 bits que la máquina guarda de verdad, no sobre el decimal que escribiste. La Calculadora bitwise toma dos números, aplica una de siete operaciones (AND, OR, XOR, NOT A, NOT B, desplazamiento a la izquierda, desplazamiento a la derecha) e imprime el resultado en cinco bases a la vez: decimal, hexadecimal, binario de 8 bits, binario de 32 bits y octal. No se sube nada; las operaciones corren sobre los enteros JavaScript del navegador. Este post recorre cada operación con números trabajados, muestra dónde se cuela el bit de signo en los desplazamientos y las máscaras que hacen de AND el caballo de batalla del código a nivel de bytes.
Siete operaciones sobre una palabra de 32 bits
Las tres operaciones de pares actúan sobre cada posición de bit. 12 es 0b1100 y 10 es 0b1010: AND guarda solo las posiciones donde ambos tienen un 1, así que 12 AND 10 = 0b1000 = 8; OR guarda la posición donde al menos uno tiene un 1, así que 12 OR 10 = 0b1110 = 14; XOR guarda la posición donde exactamente uno tiene un 1, así que 12 XOR 10 = 0b0110 = 6. Los dos botones NOT invierten cada bit de un operando: 5 es 0b0101 y su forma invertida 0b1010 es la lectura en complemento a dos de -6, que en hexadecimal de 32 bits se imprime como 0xFFFFFFFA. Los dos desplazamientos mueven los bits: 1 desplazado 4 a la izquierda es 16, y 1024 desplazado 2 a la derecha es 256. Cuando quieres el mismo valor en otra base sin tocar los bits, el convertidor de base numérica hace la conversión pura.
Tres bases de entrada, un valor de 32 bits
Cada campo acepta decimal plano, hexadecimal con prefijo 0x y binario con prefijo 0b, y el analizador guarda un solo entero de 32 bits detrás de las tres. 0xFF AND 0x0F = 15 es la máscara del nibble bajo que ves en cada protocolo de bytes. Mientras escribes, la herramienta devuelve cada operando como una cadena binaria de 32 bits agrupada en nibbles, y el panel de resultado dibuja los 8 bits bajos como ocho cajas encendidas o apagadas: 255 enciende las ocho, 16 enciende una sola. Leer esos grupos a ojo es la misma habilidad que convertir texto en código binario, y el convertidor de texto y binario la entrena letra a letra.
Desplazamientos, el bit de signo y la máscara 31
El desplazamiento a la derecha es aritmético: copia el bit de signo al moverse, así que -8 es 0xFFFFFFF8 y -8 desplazado 1 a la derecha da 0xFFFFFFFC = -4, no 0x7FFFFFFC. El de la izquierda rellena ceros por la derecha, pero el bit 31 es el bit de signo de la palabra de 32 bits, así que 1 desplazado 30 a la izquierda es 1073741824 (0x40000000), todavía positivo, mientras que 1 desplazado 31 a la izquierda es -2147483648, el negativo más pequeño. La cantidad de desplazamiento se enmascara primero a 0-31: 1 desplazado 33 a la izquierda se comporta exactamente como 1 desplazado 1 y devuelve 2. Sin error, sin aviso de desbordamiento. Sacar un byte de una palabra es el patrón cotidiano: 0xFF00 desplazado 8 a la derecha da 255. Para idas y vueltas a nivel de byte entre hexadecimal y UTF-8, el convertidor Hex UTF-8 Base64 es el hermano de esta vista.
Cinco bases de salida a la vez
El panel de resultado muestra el mismo valor cinco veces: decimal, hexadecimal (mayúsculas, prefijo 0x), binario de 8 bits, binario de 32 bits y octal. 255 se imprime como 255, 0xFF, 0b1111 1111, la cadena de 32 bits con sus 24 bits altos a cero, y 0o377. La columna octal no es adorno: el trío de permisos de archivo es octal porque cada dígito es exactamente un grupo de 3 bits de permiso, así que 0o755 es la palabra de 9 bits 0b111101101, que es rwxr-xr-x y 493 en decimal. La calculadora de permisos Chmod expande ese trío en las filas de propietario, grupo y otros, que es la vista a nivel de bit de esta columna.
Máscaras: el trabajo cotidiano de AND
AND con un número pequeño guarda solo los bits bajos: 0xFF AND 0x0F = 15, y -1 AND 7 = 7 porque -1 es todos unos. Probar un solo flag es valor AND (1 << n): si la respuesta no es 0, el bit n está puesto. XOR es su propio inverso, así que es un cifrador de una línea: 65 XOR 42 = 107 y 107 XOR 42 = 65; un byte XOR dos veces con la misma clave vuelve sin cambios. 15 en las tres bases compactas es 0b1111, 0o17 y 0xF. Las codificaciones que empaquetan bytes en texto, como Base64, se sientan sobre el mismo grupo de 6 bits de esta sección, y el codificador y decodificador Base64 muestra la tabla de correspondencia.
Los mismos 0 y 1 en todas partes
La matemática bitwise es la capa pequeña bajo todo lo que cuenta por bytes. La guía de texto a binario corta los caracteres en grupos de 8 bits a mano; el generador de hash mezcla después el búfer entero con justo estas operaciones, AND, OR, XOR y rotaciones, hasta que sale un resumen de 32 bits. Cuando la pregunta es en qué base leer un valor, empieza de los bits: cada base de este sitio, desde las cajas de 8 bits de aquí hasta los dígitos octales de permisos, es la misma palabra de 32 bits con otra notación. La calculadora es donde esa palabra deja de ser abstracta: dos entradas, una operación, cinco maneras de leer la respuesta.