Simulador de Operaciones a Nivel de Bit (AND, OR, XOR, NOT, Desplazamiento)
Calcula AND, OR, XOR, NOT, desplazamiento a la izquierda y a la derecha sobre dos números, y visualiza exactamente qué bits cambiaron en una cuadrícula binaria. Compatible con anchos de 8/16/32 bits.
Consejos de uso
- Puedes introducir valores en decimal, o usar un prefijo hexadecimal como `0x1A` o binario como `0b1010`. Pega los valores tal como los escribirías en tu código.
- AND, OR y XOR usan dos valores, mientras que NOT solo usa uno. El número de campos de entrada cambia automáticamente según la operación elegida.
- El desplazamiento a la derecha (`>>>`) solo admite la variante lógica. Consulta las preguntas frecuentes para saber en qué se diferencia de un desplazamiento aritmético que conserva el bit de signo.
- Cambiar el ancho de bits de 8 a 16 y a 32 permite ver cómo el mismo número gana más ceros a la izquierda, lo cual ayuda a entender qué significa realmente el "ancho de bits".
- Los bits resaltados en amarillo son los que cambiaron entre A y el resultado, así que con AND/OR puedes seguir visualmente qué valor de entrada "ganó" en cada posición.
Preguntas frecuentes
A propósito — Las curiosas propiedades de XOR
Las operaciones a nivel de bit se corresponden directamente con los circuitos lógicos de un ordenador, lo que las convierte en algunas de las operaciones más rápidas que puede ejecutar una CPU, a menudo en un solo ciclo de reloj. Como necesitan un circuito mucho más simple que operaciones aritméticas como la multiplicación o la división, el código sensible al rendimiento (procesamiento de imágenes, criptografía, implementaciones de protocolos de red) ha usado durante mucho tiempo trucos de bits como sustituto de operaciones aritméticas más costosas.
XOR (o exclusivo) tiene un par de propiedades curiosas: aplicar XOR de un valor consigo mismo siempre da 0 (`a ^ a = 0`), y aplicar XOR con 0 devuelve el valor original sin cambios (`a ^ 0 = a`). Combinando estos dos hechos surge el clásico truco del "intercambio con XOR", que intercambia dos variables sin usar una variable temporal (`a ^= b; b ^= a; a ^= b;`). Hoy en día rara vez se recomienda en código de producción por motivos de legibilidad, pero sigue siendo un ejemplo docente favorito para entender las operaciones a nivel de bit.
Las máscaras de bits aparecen constantemente en sistemas reales. Los permisos de archivos en Unix (lectura=4, escritura=2, ejecución=1) son literalmente OR y AND a nivel de bit en acción, y extraer los componentes rojo, verde y azul de un código de color como `#FF0000` se hace con un desplazamiento a la derecha combinado con una máscara AND. La técnica de empaquetar muchos indicadores de encendido/apagado en un único entero, a menudo llamada "banderas de bits", se usó ampliamente en juegos y sistemas antiguos que necesitaban rastrear muchos estados con muy poca memoria.