Calcula operaciones AND, OR, XOR, NOT, shift con representación binaria visual
Bit activo si ambos lo tienen
Visualización (16 bits más significativos)
12
0x000C
0000 0000 0000 1100
También podrías necesitar
Las operaciones bitwise (bit a bit) operan directamente sobre los bits individuales de los números enteros. Son operaciones de CPU de costo mínimo y se usan extensamente en programación de bajo nivel, algoritmos, optimización y criptografía. AND (&) activa un bit solo si ambos operandos lo tienen activo — útil para enmascarar bits. OR (|) activa un bit si alguno de los operandos lo tiene — útil para combinar flags. XOR (^) activa un bit si exactamente uno de los operandos lo tiene — útil para cifrado simple, toggle de bits y algoritmos de detección de diferencias. NOT (~) invierte todos los bits (complemento a dos en JavaScript). Los shifts (<<, >>) desplazan los bits hacia la izquierda o derecha, equivaliendo a multiplicar o dividir por potencias de 2. Esta herramienta muestra los dos operandos y el resultado simultáneamente en binario (bits coloreados para visualizar la operación), decimal y hexadecimal, facilitando el aprendizaje y la depuración de lógica bitwise.
¿Para qué se usa AND (&) en programación?
AND se usa principalmente para enmascarar bits: aislar bits específicos de un valor. Por ejemplo, n & 1 revela si n es par (resultado 0) o impar (resultado 1), porque solo comprueba el bit menos significativo. n & 0xFF extrae el byte menos significativo de cualquier número. n & mask es el patrón universal para leer flags en un sistema de permisos o configuración compacta.
¿Qué hace XOR (^) y por qué es tan especial?
XOR activa un bit solo cuando los operandos difieren. Sus propiedades matemáticas lo hacen útil para: toggle de bits (n ^ mask invierte exactamente los bits de mask); cifrado simple simétrico (XOR con una clave y vuélvelo a aplicar para descifrar); swap sin variable temporal (a^=b; b^=a; a^=b); detección de diferencias entre dos valores; y como base del algoritmo de paridad y detección de errores Hamming. Es la operación binaria más versátil.
¿Por qué el shift izquierdo (<<) equivale a multiplicar por 2?
En representación binaria, desplazar todos los bits una posición a la izquierda multiplica el valor por 2 — es la versión binaria de añadir un cero al final de un número decimal para multiplicarlo por 10. n << 1 = n × 2; n << 3 = n × 8 (2³). Los shifts son la forma más rápida de multiplicar o dividir por potencias de 2 en bajo nivel porque son operaciones de un ciclo de CPU, mientras que la multiplicación puede tomar varios ciclos.
¿Cómo funciona el NOT (~) en JavaScript?
JavaScript usa enteros de 32 bits con signo para operaciones bitwise. NOT (~n) aplica el complemento a dos: invierte todos los bits y el resultado es -(n+1). Así, ~0 = -1, ~1 = -2, ~(-1) = 0. Un truco común es usar ~~n como conversión rápida de float a entero (trunca los decimales como Math.trunc), aunque parseInt() o Math.trunc() son más legibles.
¿Para qué se usan las operaciones bitwise en la práctica?
Usos reales: permisos Unix (chmod 755 se construye con OR de bits rwx); flags de configuración (React usa campos de bits internamente para prioridades de fiber); colores RGB (extraer componentes: red = color >> 16 & 0xFF); compresión (guardar múltiples booleans en un entero); redes (máscaras de subred se aplican con AND); criptografía (XOR es la base de muchos cifrados de stream); optimización de código (shift en vez de multiplicación/división); y algoritmos de bit manipulation en competencias de programación.