Overview
La manipulación de bits opera directamente en los bits binarios de los enteros para soluciones eficientes en tiempo y espacio.
Analogy
Como interruptores de luz: AND es "ambos deben estar encendidos", OR es "al menos uno", XOR es "exactamente uno diferente".
Step-by-step
- AND (&): ambos bits deben ser 1 → enmascara bits
- OR (|): al menos un bit es 1 → establece bits
- XOR (^): bits diferentes → conmuta bits; a^a=0
- Shift izquierdo (<<): multiplica por 2; shift derecho (>>): divide por 2
Visual
5 & 3 = 101 & 011 = 001 = 1
5 | 3 = 101 | 011 = 111 = 7
5 ^ 3 = 101 ^ 011 = 110 = 6
5 << 1 = 1010 = 10
Common mistakes
- Confundir & (bit a bit) con and (lógico)
- Shift derecho con signo vs sin signo en lenguajes con signo
Practice questions
- Encuentra el único número no duplicado en un array con XOR
- Comprueba si un número es potencia de 2: n & (n-1) == 0
Time
O(1) para operaciones individuales; O(log n) para contar bits