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.
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 & 1000 = 1000 = 8 System.out.println('x & y = ' + (x & y)); } }
Produzione
x & 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.
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('x ^ y = ' + (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.
Usiamo l'operatore OR inclusivo bit per bit in un programma Java.
BitwiseInclusiveOrExample.java
public class BitwiseInclusiveOrExample { public static void main(String[] args) y = ' + (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
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('~x = ' + (~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 <> number of places to shift;
Ad esempio, se a=10
a>>2; //shifts two bits a>>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:
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('x>>2 = ' + (x >>2)); } }
Produzione
x>>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< Esempio 1: quale sarà il risultato dopo aver spostato a<<3. the value of a is 20.< strong> 3.> 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 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> 2.> La rappresentazione di -10 in binario è = 11110110 un<<2 11011000='<strong' =>-402> 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 Produzione 1nf 2nf 3nf
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>