Calculadora bit a bit

Combina dos números con AND, OR y XOR, invierte uno con NOT o desplaza y rota sus bits. Escribe en hexadecimal (0x), binario (0b) o decimal, elige 8, 16, 32 o 64 bits y mira cada bit de A, B y el resultado alineados columna a columna. Es lo que en inglés se conoce como calculadora bitwise.

Prueba:
Operación
Base si no hay prefijo
Ancho en bits

El resultado aparece aquí mientras escribes.

HEX
BIN
DEC (sin signo)
DEC (con signo)

Cómo funciona cada operación

AND, OR y XOR comparan los dos operandos columna a columna, de modo que cada bit del resultado depende solo de los dos bits que tiene justo encima:

ABA AND BA OR BA XOR B
00000
01011
10011
11110

NOT invierte todos los bits dentro del ancho elegido; por eso NOT 0x0F es 0xF0 a 8 bits pero 0xFFFFFFF0 a 32. << desliza todos los bits hacia la izquierda y rellena el hueco con ceros; >> los desliza hacia la derecha, también rellenando con ceros (desplazamiento lógico: esta herramienta trata los valores como patrones sin signo, así que no aplica el desplazamiento aritmético que copia el bit de signo). ROL y ROR rotan en lugar de desplazar: los bits que salen por un extremo vuelven a entrar por el otro.

Máscaras: activar, borrar y comprobar bits

Casi todo el trabajo bit a bit del día a día es manejar flags en un byte o en un registro. Con tres idiomas basta; aquí van a 8 bits:

Activar el bit 3 — OR con una máscara que solo tenga ese bit a 1:

0x41 OR 0x08 → 0100 0001 | 0000 1000 = 0100 1001 = 0x49

Borrar el bit 0 — AND con la máscara invertida (NOT 0x01 = 0xFE):

0x49 AND 0xFE → 0100 1001 & 1111 1110 = 0100 1000 = 0x48

Comprobar el bit 6 — AND con la máscara y mirar si el resultado es distinto de cero:

0x48 AND 0x40 → 0100 1000 & 0100 0000 = 0100 0000 = 0x40 ≠ 0 → el bit está a 1

XOR con la misma máscara alterna el bit en vez de fijarlo, y un valor XOR consigo mismo siempre da cero: una forma clásica de poner un registro a cero en una sola instrucción.

Desplazamientos como multiplicación y división

Como el binario es posicional, mover todos los bits una posición a la izquierda dobla el valor y moverlos a la derecha lo divide entre dos: x << n equivale a x × 2ⁿ y x >> n a x ÷ 2ⁿ, redondeando hacia abajo.

0x05 << 2 → 0000 0101 → 0001 0100 = 0x14 (5 × 4 = 20)

0x14 >> 2 → 0001 0100 → 0000 0101 = 0x05 (20 ÷ 4 = 5)

Con un ancho fijo la multiplicación se desborda sin avisar: cualquier bit que salga por arriba se pierde. A 8 bits, 0xC0 << 1 da 0x80 y no 0x180, porque 192 × 2 = 384 no cabe en un byte. Cambia el ancho de bits en la calculadora para ver qué bits sobreviven.

Herramientas y guías relacionadas