logo

Operatore bit a bit in Java

In Giava, un operatore è un simbolo che esegue le operazioni specificate. In questa sezione discuteremo solo di operatore bit a bit e suoi tipi con esempi adeguati.

Tipi di operatori bit a bit

Esistono sei tipi di operatore bit a bit in Java:

  • AND bit per bit
  • OR esclusivo bit per bit
  • OR inclusivo bit per bit
  • Complimento bit per bit
  • Operatori di spostamento di bit
Operatori Simbolo Usi
AND bit per bit & op1 e op2
OR esclusivo bit per bit ^ op1 ^ op2
OR inclusivo bit per bit | op1 | op2
Complimento bit a bit ~ ~ op
Spostamento a sinistra bit per bit << op1 << op2
Spostamento a destra bit per bit >> op1 >> op2
Operatore Right Shift senza segno >>> su >>> numero di posti da spostare

Spieghiamo in dettaglio l'operatore bit a bit.

AND bit a bit (&)

È un operatore binario indicato dal simbolo & . Restituisce 1 se e solo se entrambi i bit sono 1, altrimenti restituisce 0.

Operatore bit a bit in Java

Usiamo l'operatore AND bit a bit in un programma Java.

cos'è il computer

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)); } } 

Produzione

 x &amp; y = 8 

OR esclusivo bit per bit (^)

È un operatore binario indicato dal simbolo ^ (pronunciato come accento circonflesso). Restituisce 0 se entrambi i bit sono uguali, altrimenti restituisce 1.

Operatore bit a bit in Java

Usiamo l'operatore OR esclusivo bit per bit in un programma 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)); } } 

Produzione

 x ^ y = 1 

OR incluso bit per bit (|)

È un operatore binario indicato dal simbolo | (pronunciato come una pipa). Restituisce 1 se uno dei bit è 1, altrimenti restituisce 0.

Operatore bit a bit in Java

Usiamo l'operatore OR inclusivo bit per bit in un programma Java.

BitwiseInclusiveOrExample.java

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

Produzione

 x | y = 9 

Complemento bit a bit (~)

È un operatore unario indicato dal simbolo ~ (pronunciato come la tilde). Restituisce l'inverso o il complemento del bit. Rende ogni 0 un 1 e ogni 1 uno 0.

volpe contro lupo
Operatore bit a bit in Java

Usiamo l'operatore di complemento bit a bit in un programma 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)); } } 

Produzione

 ~x = -3 

Operatori di spostamento di bit

L'operatore Shift viene utilizzato per spostare i bit a destra o a sinistra. Possiamo utilizzare gli operatori di spostamento se dividiamo o moltiplichiamo qualsiasi numero per 2. Il formato generale per spostare il bit è il seguente:

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

Ad esempio, se a=10

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

Java fornisce i seguenti tipi di operatori di turno:

  • Operatore Right Shift con segno o Operatore Right Shift bit per bit
  • Operatore Right Shift senza segno
  • Operatore Shift sinistro firmato o Operatore Shift sinistro bit per bit

Nota: Java non supporta l'operatore di spostamento a sinistra senza segno (<<<).< h4>

Operatore Shift destro con segno (>>)

L'operatore di spostamento a destra con segno sposta la sequenza di bit di un numero verso Giusto con un numero specificato di posizioni e riempie 0. L'operatore è indicato dal simbolo >>. Conserva anche il bit più a sinistra (bit di segno). Se 0 è presentato all'estrema sinistra, significa che il numero è positivo . Se 1 è presentato nel bit più a sinistra, significa che il numero è negativo .

In generale, scrivere a>>n significa spostare i bit di un numero verso destra di una posizione specificata (n). In termini matematici, possiamo rappresentare l'operatore di spostamento a destra con segno come segue:

Operatore bit a bit in Java

Nota: quando applichiamo l'operatore di spostamento a destra su un numero positivo, otteniamo anche il numero positivo nel risultato. Allo stesso modo, quando applichiamo l'operatore di spostamento a destra su un numero negativo, otteniamo anche il numero negativo nel risultato.

Esempio: applicare l'operatore di spostamento a destra con segno con le posizioni specificate 4 se x = 256 ex = -256.

Se x = 256

256 >> 4

256/24= 16

seleziona da più tabelle in sql

Se x = -256

-256 >> 4

-256/24= -16

Nell'esempio precedente, abbiamo osservato che dopo lo spostamento l'operatore 256 viene convertito in 16 e -256 viene convertito in -16.

Creiamo un programma Java e implementiamo l'operatore di spostamento a sinistra.

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)); } } 

Produzione

 x&gt;&gt;2 = 12 

Operatore Shift sinistro con segno (<<)< strong>

L'operatore di spostamento a sinistra con segno (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Conserva anche il bit più a sinistra (bit di segno). Non preserva il bit di segno.

In generale, se scriviamo a< Operatore bit a bit in Java

Esempio 1: quale sarà il risultato dopo aver spostato a<<3. the value of a is 20.< strong>

La rappresentazione di 20 in binario è = 00010100

Dopo aver eseguito l'operatore di spostamento a sinistra, otteniamo:

a << 3 = 10100000 (gli ultimi tre bit sono quelli riempiti)

un<<3= 160

1nf 2nf 3nf

Controlliamo il risultato utilizzando la formula.

20<<3

20*23= 20*8 = 160

Esempio 2: Quale sarà il risultato dopo aver spostato a<<2. the value of a is -10.< strong>

La rappresentazione di -10 in binario è = 11110110

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

Controlliamo il risultato utilizzando la formula.

-10<<3

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

Creiamo un programma Java e implementiamo l'operatore di spostamento a sinistra con segno.

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>

Produzione

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