Las operaciones bit a bit, explicadas

Los operadores bit a bit tratan un número como una fila de bits individuales y los combinan columna a columna. Cuatro operaciones —AND, OR, XOR y los desplazamientos— cubren casi todo lo que se hace con flags, máscaras y registros.

AND: conservar solo los bits comunes

Un bit del resultado es 1 solo cuando ambas entradas son 1. Su uso clásico es enmascarar — extraer una parte de un valor:

0110 1101 (0x6D)

& 0000 1111 (0x0F, la máscara)

= 0000 1101 (0x0D — el nibble bajo)

x & 0xFF te da el byte bajo; x & 1 te dice si x es impar.

OR: activar bits

Un bit del resultado es 1 cuando cualquiera de las entradas es 1. Sirve para encender flags sin tocar el resto:

0100 0001 (flags actuales)

| 0000 1000 (flag a activar)

= 0100 1001

XOR: alternar bits

Un bit del resultado es 1 cuando las entradas difieren. XOR con una máscara invierte exactamente esos bits; un valor XOR consigo mismo da 0:

0100 1001

^ 0000 1000 (alternar ese flag)

= 0100 0001

Esa naturaleza de «detector de diferencias» hace de XOR el núcleo de sumas de verificación y bits de paridad.

Desplazamientos: multiplicar y dividir por dos

x << n mueve todos los bits n posiciones a la izquierda, rellenando con ceros: aritméticamente multiplica por 2ⁿ (hasta que los bits se caen por arriba). x >> n mueve a la derecha, dividiendo entre 2ⁿ.

0000 0101 (5) << 2 = 0001 0100 (20)

0001 0100 (20) >> 2 = 0000 0101 (5)

La sutileza está en desplazar a la derecha números negativos: el desplazamiento aritmético copia el bit de signo por la izquierda (así −8 >> 1 = −4), mientras que el lógico rellena con ceros y produce un positivo enorme. Los tipos con signo desplazan aritméticamente y los sin signo lógicamente, que es exactamente cómo se comporta el interruptor con/sin signo en la calculadora hexadecimal y en la app HexCalculator.

Por qué el hexadecimal es la notación natural

Las máscaras son ilegibles en decimal: «240» no dice nada, 0xF0 dice «el nibble alto» de un vistazo, y 1111 0000 en binario es exacto pero largo. Como cada dígito hex son exactamente cuatro bits, el hexadecimal es el compromiso que usa todo el mundo — el conversor de hexadecimal a binario ayuda a construir esa intuición.

Referencia rápida

aba AND ba OR ba XOR b
00000
01011
10011
11110

Sigue explorando