O que é o operador Bitwise em Java? e sua classificação (com exemplos)

Publicados: 2021-05-20

Java é uma das linguagens de programação mais predominantes na Índia, comandando cerca de 20% da participação de mercado . Um operador bit a bit em Java é um símbolo/notação que executa uma operação especificada em bits independentes, um de cada vez. Ele é usado para manipular bits individuais de um número binário e pode ser usado com uma variedade de tipos inteiros – char, int, long, short, byte.

Um operador bit a bit em Java pode ser amplamente classificado em 7 tipos:

Operador bit a bit em Java Símbolo Descrição
E bit a bit | Preserva um pouco no resultado se e somente se existir em ambos os operandos.
OU bit a bit & Preserva um pouco se existir em qualquer um dos dois operandos.
XOR bit a bit ^ Preserva um bit se estiver presente apenas em um operando, mas não em ambos.
COMPLEMENTO bit a bit ~ Também conhecido como complemento de 1. Basta inverter os bits do operando.
SHIFT ESQUERDO bit a bit << Os bits no operando esquerdo são deslocados para a esquerda pelo número de casas especificadas no operando direito.
TURNO DIREITO ASSINADO >> Os bits no operando esquerdo são deslocados para a direita pelo número de casas especificadas no operando direito.
TURNO DIREITO NÃO ASSINADO >>> Exatamente como SIGNED RIGHT SHIFT mais os bits deslocados são preenchidos com zero.

Vamos agora explorar em detalhes cada operador bit a bit em Java:

Índice

1. OU (A | B)

Tabela verdade

UMA B Saída
0 0 0
0 1 1
1 0 1
1 1 1

Exemplo

A = 1011 1110

B = 0011 0101

A | B = 1011 1111

Sintaxe

classe Principal {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, saída;

// bit a bit OR entre 190 e 53

saída = operando1 | operando2;

System.out.println(saída); // programa imprime 191

}

}

2. E (A e B)

Tabela verdade

UMA B Saída
0 0 0
0 1 0
1 0 0
1 1 1

Exemplo

A = 1011 1110

B = 0011 0101

A e B = 0011 0100

Sintaxe

classe Principal {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, saída;

// bit a bit OR entre 190 e 53

saída = operando1 | operando2;

System.out.println(saída); // programa imprime 52

}

}

  1. OU / XOR INCLUSIVO (A ^ B)

Tabela verdade

UMA B Saída
0 0 0
0 1 1
1 0 1
1 1 0

Exemplo

A = 1011 1110

B = 0011 0101

A ^ B = 1000 0011

Sintaxe

classe Principal {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, saída;

// bit a bit OR entre 190 e 53

saída = operando1 | operando2;

System.out.println(saída); // programa imprime 131

}

}

3. COMPLEMENTO (A ~ B)

Em termos decimais, o complemento bit a bit de um número A é – (A+1). No entanto, no domínio binário, precisamos primeiro calcular seu complemento de 1 e depois convertê-lo em seu complemento de 2 para obter a saída desejada.

Complemento de 1 – Apenas inverta os bits. Por exemplo:

A = 1011 1110 (190)

Complemento de 1 de A = 0100 0001

Complemento de 2 de A = Complemento de 1 de A + 1 = 0100 0010

Sintaxe

classe Principal {

public static void main(String[] args) {

int operando4 = 190, saída;

// complemento bit a bit de 190

saída = ~operando4;

System.out.println(saída); // imprime -191

}

}

  1. DESLOCAMENTO PARA A ESQUERDA (A << 1)

Suponha que A = 1011 1110

A << 1 = ?

Este operador bit a bit em Java faz com que todos os bits se desloquem para a esquerda em 1, ou seja, a saída é 0111 1100. O bit mais à esquerda (bit mais significativo ou MSB) é descartado, e um 0 é adicionado ao lugar vazio mais à direita ( bit menos significativo ou LSB). Isso é feito para cada lugar vago à direita.

Sintaxe

classe Principal {

public static void main(String[] args) {

operando int = 3; // binário – 11

// operação de deslocamento à esquerda de 1 bit

int saída= operando << 1;

System.out.println(saída); // imprime 2

}

}

4. TURNO DIREITO ASSINADO (A >>2)

Este operador bit a bit em Java desloca o padrão de bits para a direita pelo número especificado de casas. Os LSBs são descartados e os MSBs são preenchidos com o bit de sinal. 0 representa um sinal positivo, enquanto 1 representa um sinal negativo.

Sintaxe

classe Principal {

public static void main(String[] args) {

operando int 1 = 2;

int operando2 = -2;

// Deslocamento à direita com sinal de 2 bits

System.out.println(operando1 >> 2); // imprime 1

System.out.println(operando2 >> 2); // imprime -1

}

}

5. TURNO DIREITO NÃO ASSINADO (A >>>2)

A operação aqui é exatamente semelhante ao SIGNED RIGHT SHIFT, exceto que os bits vagos mais à esquerda são substituídos por 0 em vez dos bits de sinal.

Sintaxe

classe Principal {

public static void main(String[] args) {

operando int = 240; // número binário – 1111 0000

// Deslocamento à direita sem sinal de 2 bits

System.out.println(operando >>> 2); // imprime 60

}

}

Aprenda cursos de engenharia de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Quer dominar Java e fazer uma carreira com isso? Confira a trilha de software e tecnologia do upGrad . Inscreva-se no Programa PG Executivo de 13 meses em Desenvolvimento Full-Stack e coloque a mão na massa com projetos do mundo real. Afiliado ao renomado IIIT Bangalore, você tem a oportunidade de aprender 16 linguagens e ferramentas de programação e 3 entrevistas de emprego garantidas.

O que são operadores bit a bit?

Um operador bit a bit opera em cada bit dos operandos e retorna um resultado na forma de 1s e 0s. A maioria dos operadores bit a bit é usada para fazer várias máscaras, que podem ser usadas para criar campos de bits, alterar o tamanho de um tipo de dados e alinhar um tipo de dados. Os operadores bit a bit são usados ​​para realizar operações bit a bit em um número binário. É usado para ser mais eficiente em operações de nível de bit. Não podemos usar o operador bit a bit em variáveis ​​de tipos de dados não inteiros.

Quais são os tipos de operadores bit a bit em Java?

Na linguagem Java, além dos operadores aritméticos, os operadores bit a bit também são usados. Embora existam apenas alguns operadores bit a bit, eles podem ser extremamente úteis. Em Java existem seis operadores. São eles: E bit a bit, OR bit a bit, XOR bit a bit, Deslocamento à esquerda bit a bit, Deslocamento à direita bit a bit e Complemento de unidades. Esses operadores podem ser aplicados aos tipos inteiros byte, short, int, long e char.

Quais são os recursos da linguagem de programação Java?

Java é uma linguagem de programação orientada a objetos de propósito geral. Os aplicativos Java geralmente são compilados em bytecode, que é então executado na Java Virtual Machine. Java é projetado para ser executado em uma variedade de plataformas. Ele também é projetado para ser usado em um ambiente de computação distribuído. Um programa escrito na linguagem de programação Java é chamado de Aplicativo Java ou Ambiente de Aplicativo Java. A linguagem de programação Java é uma linguagem poderosa e flexível. Os aplicativos Java geralmente são maiores e mais complexos do que o aplicativo da Web comum. A linguagem de programação Java é uma linguagem de propósito geral. Ele pode ser usado para criar aplicativos para qualquer finalidade. Recursos como multithreading, rede, segurança e persistência tornam o Java adequado para uma ampla variedade de usos.