freeCodeCamp/guide/portuguese/java/basic-operations/bitwise-operators/index.md

2.9 KiB

title localeTitle
bitwise operator example exemplo de operador bit a bit

Operadores bit a bit

Tabela verdade

truth table

Os operadores bit a bit são semelhantes aos operadores lógicos, exceto pelo fato de trabalharem em uma escala menor - representações binárias de dados. Qualquer dado pode ser convertido em seu equivalente binário. Embora os operadores binários trabalhem em nível binário, mas eles são operados apenas entre valores decimais normais.

Tipos de operadores bit a bit

Bit a bit OU

OR bit a bit é um operador binário (opera em dois operandos). É denotado por |. O | operador compara bits correspondentes de dois operandos. Se um dos bits é 1, dá 1. Se não, dá 0.

Bit a bit E

Bitwise AND é um operador binário (opera em dois operandos). É denotado por &. O operador & compara os bits correspondentes de dois operandos. Se ambos os bits são 1, ele dá 1. Se um dos bits não for 1, ele dará 0.

Complemento Bitwise

O complemento bit a bit é um operador unário (funciona em apenas um operando). É denotado por ~. O operador ~ inverte o padrão de bits. Faz a cada 0 a 1 e a cada 1 a 0.

Bit a bit XOR

Bitwise XOR é um operador binário (opera em dois operandos). É denotado por ^. O operador ^ compara os bits correspondentes de dois operandos. Se os bits correspondentes são diferentes, dá 1. Se os bits correspondentes são os mesmos, dá 0.

Desvio à esquerda

O operador de deslocamento à esquerda << desloca um padrão de bits para a esquerda por certo número de bits especificados, e os bits de zero são deslocados para as posições de baixa ordem.

Deslocamento para a direita

O operador de deslocamento à direita >> desloca um padrão de bits para a direita por certo número de bits especificados. Se o número for um número com sinal de complemento de 2, o bit de sinal é deslocado para as posições de ordem superior.

Deslocamento à direita não assinado

O operador de deslocamento à direita sem sinal >>> muda o zero para a posição mais à esquerda.

Exemplo de operadores bit a bit:

    int a = 60;          /* 60 = 0011 1100 represents 60 in binary*/ 
    int b = 13;          /* 13 = 0000 1101 */ 
    int c = 0; 
 
    c = a & b;        /* 12 = 0000 1100 */ 
    c = a | b;        /* 61 = 0011 1101 */ 
    c = a ^ b;        /* 49 = 0011 0001 */ 
    c = ~a;           /*-61 = 1100 0011  :Invert all bits */ 
 
    // shift operators : zeros are shifted in to replace the discarded bits 
    c = a << 2;       /* 240 = 1111 0000 : Shift left 2 bits*/ 
    c = a >> 2;       /* 15 = 1111 */ 
    c = a >>> 2;      /* 15 = 0000 1111 : Zero fill right shift*/ 

PARA MAIS INFORMAÇÕES: Clique Aqui