logo

Operador bit a bit em Java

Em Java, um operador é um símbolo que executa as operações especificadas. Nesta seção discutiremos apenas Operador bit a bit e seus tipos com exemplos adequados.

Tipos de operador bit a bit

Existem seis tipos de operador bit a bit em Java:

  • E bit a bit
  • OR exclusivo bit a bit
  • OU bit a bit inclusivo
  • Elogio bit a bit
  • Operadores de mudança de bits
Operadores Símbolo Usos
E bit a bit & op1 e op2
OR exclusivo bit a bit ^ op1 ^ op2
OU bit a bit inclusivo | op1 | op2
Elogio bit a bit ~ ~op
Deslocamento bit a bit para a esquerda << op1 << op2
Deslocamento bit a bit para a direita >> op1 >> op2
Operador de deslocamento à direita não assinado >>> em >>> número de lugares para mudar

Vamos explicar o operador bit a bit em detalhes.

E bit a bit (&)

É um operador binário denotado pelo símbolo & . Ele retorna 1 se e somente se ambos os bits forem 1, caso contrário, retorna 0.

Operador bit a bit em Java

Vamos usar o operador AND bit a bit em um programa Java.

tutorial do pyspark

BitwiseAndExample.java

 public class BitwiseAndExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise and // 1001 &amp; 1000 = 1000 = 8 System.out.println(&apos;x &amp; y = &apos; + (x &amp; y)); } } 

Saída

 x &amp; y = 8 

OR exclusivo bit a bit (^)

É um operador binário denotado pelo símbolo ^ (pronunciado como acento circunflexo). Ele retorna 0 se os dois bits forem iguais, caso contrário, retorna 1.

Operador bit a bit em Java

Vamos usar o operador OR exclusivo bit a bit em um programa Java.

BitwiseXorExample.java

 public class BitwiseXorExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise XOR // 1001 ^ 1000 = 0001 = 1 System.out.println(&apos;x ^ y = &apos; + (x ^ y)); } } 

Saída

 x ^ y = 1 

OU bit a bit inclusivo (|)

É um operador binário denotado pelo símbolo | (pronunciado como cachimbo). Ele retorna 1 se um dos bits for 1, caso contrário, retorna 0.

Operador bit a bit em Java

Vamos usar o operador OR inclusivo bit a bit em um programa Java.

BitwiseInclusiveOrExample.java

 public class BitwiseInclusiveOrExample { public static void main(String[] args) y = &apos; + (x } 

Saída

 x | y = 9 

Complemento bit a bit (~)

É um operador unário denotado pelo símbolo ~ (pronunciado como til). Retorna o inverso ou complemento do bit. Faz com que cada 0 seja 1 e cada 1 seja 0.

derivada parcial de látex
Operador bit a bit em Java

Vamos usar o operador de complemento bit a bit em um programa Java.

BitwiseComplimentExample.java

 public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println(&apos;~x = &apos; + (~x)); } } 

Saída

 ~x = -3 

Operadores de mudança de bits

O operador Shift é usado para deslocar os bits para a direita ou para a esquerda. Podemos usar operadores de deslocamento se dividirmos ou multiplicarmos qualquer número por 2. O formato geral para deslocar o bit é o seguinte:

 variable &lt;&gt; number of places to shift; 

Por exemplo, se a=10

 a&gt;&gt;2; //shifts two bits a&gt;&gt;4; //shifts 4 bits 

Java fornece os seguintes tipos de operadores de turno:

  • Operador de deslocamento à direita assinado ou operador de deslocamento à direita bit a bit
  • Operador de deslocamento à direita não assinado
  • Operador de deslocamento à esquerda assinado ou operador de deslocamento à esquerda bit a bit

Nota: Java não suporta o operador de deslocamento à esquerda não assinado (<<<).< h4>

Operador de mudança para a direita assinado (>>)

O operador de deslocamento para a direita com sinal desloca um padrão de bits de um número em direção ao certo com um número especificado de posições e preenche 0. O operador é denotado pelo símbolo >>. Também preserva o bit mais à esquerda (bit de sinal). Se 0 é apresentado no bit mais à esquerda, significa que o número é positivo . Se 1 é apresentado no bit mais à esquerda, significa que o número é negativo .

Em geral, se escrevermos a>>n, significa deslocar os bits de um número para a direita com uma posição especificada (n). Em termos matemáticos, podemos representar o operador de deslocamento para a direita com sinal da seguinte forma:

Operador bit a bit em Java

Nota: Quando aplicamos o operador de deslocamento para a direita em um número positivo, obtemos também o número positivo no resultado. Da mesma forma, quando aplicamos o operador de deslocamento para a direita em um número negativo, obtemos também o número negativo no resultado.

Exemplo: aplique o operador de deslocamento para a direita com sinal com posições especificadas 4 se x = 256 e x = -256.

Se x = 256

256 >> 4

256/24= 16

Se x = -256

Madhuri disse

-256 >> 4

-256/24= -16

No exemplo acima, observamos que após a mudança o operador 256 foi convertido em 16 e -256 convertido em -16.

Vamos criar um programa Java e implementar o operador shift à esquerda.

SignedRightShiftOperatorExample.java

 public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println(&apos;x&gt;&gt;2 = &apos; + (x &gt;&gt;2)); } } 

Saída

 x&gt;&gt;2 = 12 

Operador de deslocamento à esquerda assinado (<<)< strong>

O operador de deslocamento à esquerda assinado (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Também preserva o bit mais à esquerda (bit de sinal). Não preserva o bit de sinal.

Em geral, se escrevermos um< Operador bit a bit em Java

Exemplo 1: Qual será o resultado após mudar a<<3. the value of a is 20.< strong>

A representação de 20 em binário é = 00010100

Depois de executar o operador shift à esquerda, obtemos:

a << 3 = 10100000 (os últimos três bits são os bits preenchidos)

uma << 3 = 160

Vamos verificar o resultado usando a fórmula.

20 << 3

20*23= 20*8 = 160

Exemplo 2: Qual será o resultado após mudar a<<2. the value of a is -10.< strong>

A representação de -10 em binário é = 11110110

um<<2 11011000='<strong' =>-40

Vamos verificar o resultado usando a fórmula.

js onclick

-10 << 3

-10*22= -10*4 = -40

Vamos criar um programa Java e implementar o operador de deslocamento à esquerda assinado.

SignedLeftShiftOperatorExample.java

 public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println(&apos;x&lt;<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x&lt;<1 24 = < pre> <h3>Unsigned Right Shift Operator (&gt;&gt;&gt;)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>&gt;&gt;&gt;.</strong> Note that the leftmost position after &gt;&gt; depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a&gt;&gt;&gt;b?</strong> </p> <p>a &gt;&gt;&gt; b = 11110000 &gt;&gt;&gt; 2 = <strong>00111100</strong> </p> <p>The left operand value is moved right by the number of bits specified by the right operand and the shifted bits are filled up with zeros. Excess bits shifted off to the right are discarded.</p> <p>Therefore, before shifting the bits the decimal value of a is 240, and after shifting the bits the decimal value of a is 60.</p> <p>Let&apos;s create a Java program and use the unsigned right shift operator.</p> <p> <strong>UnsignedRightShiftOperatorExample.java</strong> </p> <pre> public class UnsignedRightShiftOperatorExample { public static void main(String args[]) { int x = 20; System.out.println(&apos;x&gt;&gt;&gt;2 = &apos; + (x &gt;&gt;&gt;2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x&gt;&gt;&gt;2 = 5 </pre> <hr></1></pre></1>

Saída

 x&gt;&gt;&gt;2 = 5