Che cos'è Bitwise Operator in Java? e la sua classificazione (con esempi)

Pubblicato: 2021-05-20

Java è uno dei linguaggi di programmazione più predominanti in India, controllando circa il 20% della quota di mercato . Un operatore bit per bit in Java è un simbolo/notazione che esegue un'operazione specificata su bit autonomi, presi uno alla volta. Viene utilizzato per manipolare singoli bit di un numero binario e può essere utilizzato con una varietà di tipi interi: char, int, long, short, byte.

Un operatore bit per bit in Java può essere classificato in 7 tipi:

Operatore bit a bit in Java Simbolo Descrizione
bit a bit E | Conserva un po' il risultato se e solo se esiste in entrambi gli operandi.
OR bit a bit & Conserva un po' se esiste in uno dei due operandi.
XOR bit a bit ^ Conserva un po' se è presente solo in un operando ma non in entrambi.
COMPLEMENTO bit a bit ~ Conosciuto anche come complemento a 1. Basta invertire i bit dell'operando.
MAIUSC SINISTRA bit per bit << I bit nell'operando di sinistra vengono spostati a sinistra del numero di posizioni specificato nell'operando di destra.
SPOSTAMENTO A DESTRA FIRMATO >> I bit nell'operando sinistro vengono spostati a destra del numero di posizioni specificato nell'operando destro.
MAIUSC A DESTRA NON FIRMATO >>> Esattamente come SIGNED RIGHT SHIFT più i bit spostati sono riempiti con zero.

Esaminiamo ora in dettaglio ogni operatore bit per bit in Java:

Sommario

1. OPPURE (A | B)

Tavola della verità

UN B Produzione
0 0 0
0 1 1
1 0 1
1 1 1

Esempio

A = 1011 1110

B = 0011 0101

A | B = 1011 1111

Sintassi

classe principale {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, uscita;

// OR bit per bit tra 190 e 53

uscita = operando1 | operando2;

System.out.println(output); // il programma stampa 191

}

}

2. E (A e B)

Tavola della verità

UN B Produzione
0 0 0
0 1 0
1 0 0
1 1 1

Esempio

A = 1011 1110

B = 0011 0101

A e B = 0011 0100

Sintassi

classe principale {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, uscita;

// OR bit per bit tra 190 e 53

uscita = operando1 | operando2;

System.out.println(output); // il programma stampa 52

}

}

  1. COMPRESO OR / XOR (A ^ B)

Tavola della verità

UN B Produzione
0 0 0
0 1 1
1 0 1
1 1 0

Esempio

A = 1011 1110

B = 0011 0101

A ^ B = 1000 0011

Sintassi

classe principale {

public static void main(String[] args) {

int operando1 = 190, operando2 = 53, uscita;

// OR bit per bit tra 190 e 53

uscita = operando1 | operando2;

System.out.println(output); // il programma stampa 131

}

}

3. COMPLEMENTO (A ~ B)

In termini decimali, il complemento bit per bit di un numero A è – (A+1). Tuttavia, nel dominio binario, dobbiamo prima calcolare il suo complemento a 1 e poi convertirlo nel suo complemento a 2 per ottenere l'output desiderato.

Complemento a 1: basta invertire i bit. Per esempio:

A = 1011 1110 (190)

Complemento a 1 di A = 0100 0001

Complemento a 2 di A = Complemento a 1 di A + 1 = 0100 0010

Sintassi

classe principale {

public static void main(String[] args) {

int operando4 = 190, uscita;

// complemento bit a bit di 190

uscita = ~operando4;

System.out.println(output); // stampa -191

}

}

  1. MAIUSC A SINISTRA (A << 1)

Supponiamo A = 1011 1110

A << 1 = ?

Questo operatore bit per bit in Java fa spostare tutti i bit a sinistra di 1, ovvero l'output è 0111 1100. Il bit più a sinistra (bit più significativo o MSB) viene scartato e viene aggiunto uno 0 al posto vuoto più a destra ( bit meno significativo o LSB). Questo viene fatto per ogni posto vacante a destra.

Sintassi

classe principale {

public static void main(String[] args) {

int operando = 3; // binario – 11

// Operazione di spostamento a sinistra di 1 bit

int output= operando << 1;

System.out.println(output); // stampa 2

}

}

4. SHIFT DESTRO FIRMATO (A >>2)

Questo operatore bit per bit in Java sposta il modello di bit a destra del numero di posizioni specificato. Gli LSB vengono scartati e gli MSB vengono riempiti con il bit di segno. 0 rappresenta un segno positivo, mentre 1 rappresenta un segno negativo.

Sintassi

classe principale {

public static void main(String[] args) {

int operando 1 = 2;

int operando2 = -2;

// Spostamento a destra con segno a 2 bit

System.out.println(operando1 >> 2); // stampa 1

System.out.println(operando2 >> 2); // stampa -1

}

}

5. MAIUSC A DESTRA NON FIRMATO (A >>>2)

L'operazione qui è esattamente simile a SIGNED RIGHT SHIFT tranne per il fatto che i bit più a sinistra vuoti vengono sostituiti con 0 invece dei bit di segno.

Sintassi

classe principale {

public static void main(String[] args) {

int operando = 240; // numero binario – 1111 0000

// Spostamento a destra senza segno di 2 bit

System.out.println(operando >>> 2); // ne stampa 60

}

}

Impara i corsi di ingegneria del software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

Vuoi padroneggiare Java e farne una carriera? Dai un'occhiata alla traccia di software e tecnologia di upGrad . Iscriviti al programma Executive PG di 13 mesi in Full-Stack Development e sporcati le mani con progetti reali. Affiliato al rinomato IIIT Bangalore, hai l'opportunità di imparare 16 linguaggi e strumenti di programmazione e 3 colloqui di lavoro garantiti.

Cosa sono gli operatori bit per bit?

Un operatore bit per bit opera su ciascun bit degli operandi e restituisce un risultato sotto forma di 1 e 0. La maggior parte degli operatori bit per bit viene utilizzata per creare varie maschere, che possono essere utilizzate per creare campi di bit, modificare la dimensione di un tipo di dati e allineare un tipo di dati. Gli operatori bit per bit vengono utilizzati per eseguire operazioni bit per bit su un numero binario. Viene utilizzato per essere più efficiente nelle operazioni a livello di bit. Non è possibile utilizzare l'operatore bit per bit su variabili di tipi di dati non interi.

Quali sono i tipi di operatori bit per bit in Java?

In Java Language, oltre agli operatori aritmetici, vengono utilizzati anche gli operatori bit per bit. Sebbene ci siano solo pochi operatori bit per bit, possono essere estremamente utili. In Java ci sono sei operatori. Sono: AND bit per bit, OR bit per bit, XOR bit per bit, spostamento sinistro bit per bit, spostamento destro bit per bit e complemento di uno. Questi operatori possono essere applicati ai tipi interi byte, short, int, long e char.

Quali sono le caratteristiche del linguaggio di programmazione Java?

Java è un linguaggio di programmazione orientato agli oggetti generico. Le applicazioni Java vengono in genere compilate in bytecode, che viene quindi eseguito sulla Java Virtual Machine. Java è progettato per funzionare su una varietà di piattaforme. È inoltre progettato per essere utilizzato in un ambiente informatico distribuito. Un programma scritto nel linguaggio di programmazione Java è chiamato Java Application o Java Application Environment. Il linguaggio di programmazione Java è un linguaggio potente e flessibile. Le applicazioni Java sono spesso più grandi e complesse dell'applicazione Web media. Il linguaggio di programmazione Java è un linguaggio generico. Può essere utilizzato per creare applicazioni per qualsiasi scopo. Funzionalità come multithreading, networking, sicurezza e persistenza rendono Java adatto a un'ampia varietà di usi.