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.
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 & 1000 = 1000 = 8 System.out.println('x & y = ' + (x & y)); } }
Saída
x & 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.
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('x ^ y = ' + (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.
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 = ' + (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
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('~x = ' + (~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 <> number of places to shift;
Por exemplo, se a=10
a>>2; //shifts two bits a>>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:
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('x>>2 = ' + (x >>2)); } }
Saída
x>>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< Exemplo 1: Qual será o resultado após mudar a<<3. the value of a is 20.< strong> 3.> 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> 2.> A representação de -10 em binário é = 11110110 um<<2 11011000='<strong' =>-402> Vamos verificar o resultado usando a fórmula. -10 << 3 -10*22= -10*4 = -40 Vamos criar um programa Java e implementar o operador de deslocamento à esquerda assinado. SignedLeftShiftOperatorExample.java Saída js onclick
public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println('x<<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x<<1 24 = < pre> <h3>Unsigned Right Shift Operator (>>>)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>>>>.</strong> Note that the leftmost position after >> depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a>>>b?</strong> </p> <p>a >>> b = 11110000 >>> 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'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('x>>>2 = ' + (x >>>2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x>>>2 = 5 </pre> <hr></1></pre></1>
x>>>2 = 5
1>1>