As operações de bits definidas por Java aplicam-se a tipos inteiros como int, long, short, char e byte.
Os operadores bit a bit são usados principalmente para realizar operações nos bits binários dos operandos. As operações bit a bit representam cálculos baseados em cada dígito binário. Os operandos e os resultados da operação são valores inteiros. .
Os operadores de bits na linguagem Java são divididos em duas categorias: operadores lógicos de bits e operadores de deslocamento de bits.
Operação AND bit a bit:
A operação AND bit a bit executa uma operação bit a bit em dois dados inteiros aeb, e o resultado da operação é um dado inteiro c. O algoritmo é: se os bits correspondentes dos dois dados aeb são ambos 1, então o bit de c é 1, caso contrário é 0.
Por exemplo:
uma: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
Operação OR bit a bit:
A operação OR bit a bit executa uma operação bit a bit em dois dados inteiros aeb, e o resultado da operação é um dado inteiro c. O algoritmo é: se os bits correspondentes dos dois dados aeb são ambos 0, então o bit de c é 0, caso contrário é 1.
Por exemplo:
uma: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
Operação NOT bit a bit:
A operação NOT bit a bit executa uma operação bit a bit em um dado inteiro a, e o resultado da operação é um dado inteiro c. O algoritmo é: se o bit correspondente dos dados a for 0, então o bit de c será 1, caso contrário será 0.
Por exemplo:
uma:0 1 0 1 0 0 1 1
c:1 0 1 0 1 1 0 0
Operação XOR bit a bit:
A operação XOR bit a bit executa uma operação bit a bit em dois dados inteiros aeb, e o resultado da operação é um dado inteiro c. O algoritmo é: se os bits correspondentes dos dois dados aeb são iguais, então o bit de c é 0, caso contrário é 1.
Por exemplo:
uma: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
Operação de deslocamento à direita bit a bit:
O algoritmo da operação de deslocamento à direita bit a bit é o seguinte: mova todos os números para a direita pelo número correspondente de dígitos na forma binária, desloque (descarte) os bits inferiores e preencha os bits vazios nos bits superiores com zeros.
Por exemplo: desloque o número inteiro 83 para a direita em 1 bit
Antes de mudar: 0 1 0 1 0 0 1 1
Após a mudança: 0 0 1 0 1 0 0 1
Operação de deslocamento à esquerda bit a bit:
O algoritmo da operação de deslocamento à esquerda bit a bit é: deslocar todos os números para a esquerda pelo número correspondente de dígitos na forma binária, deslocar os bits superiores (descartar) e preencher os bits vazios nos bits inferiores com zeros.
Por exemplo: desloque o número inteiro 83 para a esquerda em 1 bit
Antes de mudar: 0 1 0 1 0 0 1 1
Após a mudança: 1 0 1 0 0 1 1 0
Exemplo:
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 é 10101100 após a negação. complemento de 10101100 é 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);}}
Os resultados da execução são os seguintes:
a&b=18a|b=123~a=-84a^b=105a>>2=41a<<2=166