Guía

Operadores bit a bit: AND, OR, XOR, NOT y desplazamientos

Qué hace cada operador, cómo se calcula a mano y para qué se usan de verdad en programación, redes y electrónica.

Por el equipo de BinaFácil · Actualizado el 29 de septiembre de 2026

Qué significa operar «bit a bit»

La mayoría de las operaciones que conocemos (sumar, multiplicar) tratan el número como un todo. Las operaciones bit a bit, en cambio, escriben los números en binario y trabajan posición por posición, sin acarreos: el resultado de cada bit depende solo de los bits que están en esa misma posición.

Para los ejemplos usaremos A = 12 (1100) y B = 10 (1010).

AND: los dos a la vez

AND deja un 1 solo donde ambos números tienen un 1.

ABA AND B
000
010
100
111

1100 AND 1010 = 1000 = 8. Su uso típico es como máscara: para quedarte con ciertos bits y poner a cero el resto. Por ejemplo, n AND 1 te dice si un número es par (resultado 0) o impar (resultado 1), y la dirección de red de una IP se obtiene haciendo AND con la máscara de subred.

OR: al menos uno

OR deja un 1 donde cualquiera de los dos tiene un 1.

1100 OR 1010 = 1110 = 14. Se usa para activar bits sin tocar los demás, por ejemplo para añadir un permiso o una opción (flag) a un conjunto de opciones guardadas en un solo número.

XOR: solo si son distintos

XOR (o exclusivo) deja un 1 donde los bits son diferentes.

1100 XOR 1010 = 0110 = 6. Tiene propiedades muy útiles: hacer XOR dos veces con el mismo valor devuelve el original (A XOR B XOR B = A), por eso aparece en algoritmos de cifrado sencillos, en sumas de verificación y para alternar un bit entre 0 y 1.

NOT: invertirlo todo

NOT trabaja con un solo número y cambia cada 0 por 1 y cada 1 por 0. Aquí hay un detalle importante: el resultado depende de cuántos bits se usen. Con 4 bits, NOT 1100 = 0011 = 3; pero con 32 bits, los 28 ceros de la izquierda también se invierten y NOT 12 = 4.294.967.283. Por eso las calculadoras y los lenguajes de programación siempre trabajan con un tamaño fijo (8, 16, 32 o 64 bits).

Desplazamientos: mover los bits

  • Desplazamiento a la izquierda (<<): mueve todos los bits hacia la izquierda y rellena con ceros por la derecha. Cada posición equivale a multiplicar por 2: 5 (101) << 1 = 10 (1010), y 5 << 3 = 40.
  • Desplazamiento a la derecha (>>): mueve los bits hacia la derecha y descarta los que salen. Cada posición equivale a dividir entre 2 sin decimales: 13 (1101) >> 1 = 6 (110).

Los desplazamientos son muy rápidos para el procesador, y se usan mucho para construir máscaras: 1 << n genera un número con un único 1 en la posición n.

Un ejemplo real: permisos con flags

Imagina que guardas los permisos de un usuario en un solo número, donde cada bit es un permiso: leer = 1 (001), escribir = 2 (010), ejecutar = 4 (100).

  • Dar permisos de leer y escribir: 1 OR 2 = 3 (011).
  • Comprobar si puede escribir: 3 AND 2 = 2 (distinto de 0 → sí).
  • Quitar el permiso de escribir: 3 AND (NOT 2) = 1 (001).

Es exactamente la idea detrás de los permisos de archivos en Linux (el famoso chmod 755) y de muchos registros de configuración en microcontroladores como los de Arduino.

Compruébalo tú mismo Operaciones bit a bit Abrir la herramienta →

Sobre este proyecto

BinaFácil es un proyecto independiente de herramientas gratuitas. Nació como un conversor sencillo de decimal a binario y ha ido creciendo con más herramientas gratuitas de matemáticas y computación, pensadas para estudiantes, programadores y cualquiera con curiosidad.

Todas las herramientas funcionan enteramente en tu navegador, son gratuitas, no requieren cuenta y no guardan tus datos en ningún servidor. ¿Preguntas, ideas o algo que no funciona como debería? Escribe a contacto@binafacil.com