Operatori costituiscono l'elemento base di qualsiasi linguaggio di programmazione. Anche Java mette a disposizione molti tipi di operatori che possono essere utilizzati a seconda della necessità di eseguire diversi calcoli e funzioni, siano esse logiche, aritmetiche, relazionali, ecc. Essi vengono classificati in base alle funzionalità che forniscono. Ecco alcuni tipi:
- Operatori aritmetici
- Operatori unari
- Operatore di assegnazione
- Operatori relazionali
- Operatori logici
- Operatore ternario
- Operatori bit a bit
- Operatori di turno
Questo articolo spiega tutto ciò che è necessario sapere sugli operatori bit a bit.
Operatori bit a bit
Gli operatori bit a bit vengono utilizzati per eseguire la manipolazione dei singoli bit di un numero. Possono essere utilizzati con qualsiasi tipo integrale (char, short, int, ecc.). Vengono utilizzati durante l'esecuzione di operazioni di aggiornamento e query degli alberi indicizzati binari.
costante Java
Ora diamo un'occhiata a ciascuno degli operatori bit a bit in Java:
1. OR bit a bit (|)
Questo operatore è un operatore binario, indicato con '|'. Restituisce bit per bit OR dei valori di input, ovvero se uno dei bit è 1, restituisce 1, altrimenti mostra 0.
Esempio:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise OR Operation of 5 and 7 0101 | 0111 ________ 0111 = 7 (In decimal)>
2. AND bit a bit (&)
Questo operatore è un operatore binario, indicato con '&'. Restituisce bit per bit AND dei valori di input, ovvero se entrambi i bit sono 1, restituisce 1, altrimenti mostra 0.
Esempio:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise AND Operation of 5 and 7 0101 & 0111 ________ 0101 = 5 (In decimal)>
3. XOR bit a bit (^)
Questo operatore è un operatore binario, indicato con '^'. Restituisce bit per bit XOR dei valori di input, ovvero, se i bit corrispondenti sono diversi, restituisce 1, altrimenti mostra 0.
stringa formattata c
Esempio:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise XOR Operation of 5 and 7 0101 ^ 0111 ________ 0010 = 2 (In decimal)>
4. Complemento bit a bit (~)
Questo operatore è un operatore unario, indicato con '~'. Restituisce la rappresentazione in complemento a uno del valore di input, ovvero con tutti i bit invertiti, il che significa che ogni 0 diventa 1 e ogni 1 diventa 0.
Esempio:
a = 5 = 0101 (In Binary) Bitwise Complement Operation of 5 ~ 0101 ________ 1010 = 10 (In decimal)>
GiavaNota: Il compilatore fornirà il complemento a 2 di quel numero, ovvero il complemento a 2 di 10 sarà -6.
// Java program to illustrate // bitwise operators public class operators { public static void main(String[] args) b)); // bitwise xor // 0101 ^ 0111=0010 = 2 System.out.println('a^b = ' + (a ^ b)); // bitwise not // ~00000000 00000000 00000000 00000101=11111111 11111111 11111111 11111010 // will give 2's complement (32 bit) of 5 = -6 System.out.println('~a = ' + ~a); // can also be combined with // assignment operator to provide shorthand // assignment // a=a&b a &= b; System.out.println('a= ' + a); }> Produzione
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>
Spazio ausiliario:O(1)
Complessità temporale:O(1)
Giava // Demonstrating the bitwise logical operators class GFG { public static void main (String[] args) { String binary[]={ '0000','0001','0010','0011','0100','0101', '0110','0111','1000','1001','1010', '1011','1100','1101','1110','1111' }; // initializing the values of a and b int a=3; // 0+2+1 or 0011 in binary int b=6; // 4+2+0 or 0110 in binary // bitwise or int c= a | b; // bitwise and int d= a & b; // bitwise xor int e= a ^ b; // bitwise not int f= (~a & b)|(a &~b); int g= ~a & 0x0f; System.out.println(' a= '+binary[a]); System.out.println(' b= '+binary[b]); System.out.println(' a|b= '+binary[c]); System.out.println(' a&b= '+binary[d]); System.out.println(' a^b= '+binary[e]); System.out.println('~a & b|a&~b= '+binary[f]); System.out.println('~a= '+binary[g]); } }> Produzione
a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>
Operatori di spostamento di bit (operatori di spostamento)
Gli operatori di spostamento vengono utilizzati per spostare i bit di un numero a sinistra o a destra, moltiplicando o dividendo il numero rispettivamente per due. Possono essere utilizzati quando dobbiamo moltiplicare o dividere un numero per due.
Sintassi:
number shift_op number_of_places_to_shift;>
Tipi di operatori di turno:
Gli operatori di turno sono ulteriormente suddivisi in 4 tipologie. Questi sono:
- Operatore di spostamento a destra con segno (>>)
- Operatore di spostamento a destra senza segno (>>>)
- Operatore di spostamento a sinistra(<<)
- Operatore di spostamento a sinistra senza segno (<<<)
Nota: Per maggiori dettagli sugli operatori Shift in Java, fare riferimento Operatore di turno in Java .
hrithik roshan
programma per implementare tutti gli operatori Bitwise in Java per l'input dell'utente
Giava import java.util.Scanner; public class BitwiseOperators { public static void main(String[] args) Scanner input = new Scanner(System.in); System.out.print('Enter first number: '); int num1 = input.nextInt(); System.out.print('Enter second number: '); int num2 = input.nextInt(); System.out.println('Bitwise AND: ' + (num1 & num2)); System.out.println('Bitwise OR: ' + (num1 }> Ingresso
Enter first number: 4 Enter second number: 8>
Produzione
Bitwise AND: 0 Bitwise OR: 12 Bitwise XOR: 12 Bitwise NOT: -5 Bitwise Left Shift: 16 Bitwise Right Shift: 1 Bitwise Unsigned Right Shift: 1>
Spiegazione
Questo programma richiede all'utente di inserire due numeri, num1 e num2. Quindi esegue le seguenti operazioni bit per bit utilizzando gli operatori &, |, ^, ~, <> e>>>:
AND bit per bit
OR bit per bit
XOR bit a bit
Bit per bit NON
Shift sinistro bit a bit
Shift destro bit per bit
Riempimento zero bit per bit Spostamento a destra
Vantaggi
I vantaggi dell'utilizzo degli operatori bit a bit in Java sono:
- Velocità: Le operazioni bit a bit sono molto più veloci delle operazioni aritmetiche poiché operano direttamente sulle rappresentazioni binarie dei numeri.
- Ottimizzazione dello spazio: Le operazioni bit a bit possono essere utilizzate per archiviare più valori in una singola variabile, il che può essere utile quando si lavora con memoria limitata.
- Manipolazione dei bit: Gli operatori bit a bit consentono un controllo preciso sui singoli bit di un numero, il che può essere utile in varie applicazioni come crittografia, rilevamento di errori e compressione.
- Semplificazione del codice : le operazioni bit a bit possono semplificare il codice riducendo il numero di istruzioni condizionali e cicli necessari per eseguire determinate attività.
In sintesi, gli operatori bit a bit sono uno strumento importante per ottimizzare le prestazioni, migliorare la leggibilità del codice e ridurre la complessità del codice nelle applicazioni Java.