Las operaciones de bits definidas por Java se aplican a tipos de números enteros como int, long, short, char y byte.
Los operadores bit a bit se utilizan principalmente para realizar operaciones en los bits binarios de los operandos. Las operaciones bit a bit representan cálculos basados en cada dígito binario. Los operandos y los resultados de la operación son valores enteros. Si el resultado de la operación es un número negativo, se utiliza la representación en complemento. .
Los operadores de bits en lenguaje Java se dividen en dos categorías: operadores lógicos de bits y operadores de desplazamiento de bits.
Operación Y bit a bit:
La operación AND bit a bit realiza una operación bit a bit en dos datos enteros ayb, y el resultado de la operación es un dato entero c. El algoritmo es: si los bits correspondientes de los dos datos a y b son ambos 1, entonces el bit de c es 1; de lo contrario, es 0.
Por ejemplo:
a:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c:0 0 0 1 0 0 1 0
Operación OR bit a bit:
La operación OR bit a bit realiza una operación bit a bit en dos datos enteros ayb, y el resultado de la operación es un dato entero c. El algoritmo es: si los bits correspondientes de los dos datos a y b son 0, entonces el bit de c es 0; de lo contrario, es 1.
Por ejemplo:
a:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c: 0 1 1 1 1 0 1 1
Operación NO bit a bit:
La operación NOT bit a bit realiza una operación bit a bit en un dato entero a, y el resultado de la operación es un dato entero c. El algoritmo es: si el bit correspondiente de los datos a es 0, entonces el bit de c es 1; de lo contrario, es 0.
Por ejemplo:
a:0 1 0 1 0 0 1 1
c:1 0 1 0 1 1 0 0
Operación XOR bit a bit:
La operación XOR bit a bit realiza una operación bit a bit en dos datos enteros ayb, y el resultado de la operación es un dato entero c. El algoritmo es: si los bits correspondientes de los dos datos a y b son iguales, entonces el bit de c es 0; de lo contrario, es 1.
Por ejemplo:
a:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c:0 1 1 0 1 0 0 1
Operación de desplazamiento a la derecha bit a bit:
El algoritmo de la operación de desplazamiento a la derecha bit a bit es el siguiente: mover todos los números hacia la derecha el número correspondiente de dígitos en forma binaria, desplazar (descartar) los bits bajos y llenar los bits vacíos en los bits altos con ceros.
Por ejemplo: desplazar el número entero 83 hacia la derecha 1 bit
Antes del cambio: 0 1 0 1 0 0 1 1
Después del cambio: 0 0 1 0 1 0 0 1
Operación de desplazamiento a la izquierda bit a bit:
El algoritmo de la operación de desplazamiento bit a izquierda es: desplazar todos los números hacia la izquierda en el número correspondiente de dígitos en forma binaria, desplazar los bits altos (descartar) y llenar los bits vacíos en los bits bajos con ceros.
Por ejemplo: desplazar el número entero 83 hacia la izquierda 1 bit
Antes del cambio: 0 1 0 1 0 0 1 1
Después del cambio: 1 0 1 0 0 1 1 0
Ejemplo:
publicclassMain{publicstaticvoidmain(String[]args){inta=83;/*83=01010011*/intb=58;/*58=00111010*/intc=0;c=a&b;/*18=00010010*/System.out .println(a&b=+c);c=a|b;/*123=01111011*/System.out.println(a|b=+c);c=~a;/*01010011 es 10101100 después de la negación. complemento de 10101100 es 11010100, -84=11010100*/System.out.println(~a=+c);c=a^b;/*105=01101001*/System.out.println(a^b=+ c );c=a>>1;/*41=00101001*/System.out.println(a>>2=+c);c=a<<1;/*166=10100110*/System.out. (a<<2=+c);}}
Los resultados de ejecución son los siguientes:
a&b=18a|b=123~a=-84a^b=105a>>2=41a<<2=166