Operatori Bitwise C ++

Operatori Bitwise C ++
In questo articolo, discuteremo degli operatori bitwise nel linguaggio di programmazione C ++. Vedremo diversi esempi di lavoro per comprendere le operazioni bitwise in dettaglio. In C ++, gli operatori bitwise lavorano a livello di bit individuali.

Breve panoramica degli operatori bitwise

Un operatore è un simbolo che indica al compilatore di eseguire determinate operazioni matematiche o logiche. Esistono diversi tipi di operatori in C ++, come:

  1. Operatori aritmetici
  2. Operatori logici
  3. Operatori relazionali
  4. Operatori di assegnazione
  5. Operatori bitwise
  6. Operatori misc

Tutti gli operatori bitwise lavorano a livello di bit individuali. L'operatore bitwise può essere applicato solo ai tipi di dati interi e caratteri. Ad esempio, se si dispone di una variabile di tipo intero con la dimensione di 32 bit e si applica un funzionamento non bit, l'operatore non verrà applicato per tutti i 32 bit. Quindi, alla fine, tutti i 32 bit nella variabile saranno invertiti.

Ci sono sei diversi operatori bitwise sono disponibili in C ++:

  1. Bitwise o [rappresentato come "|"]
  2. Bitwise e [rappresentato come "&"]
  3. Bitway non [rappresentato come "~"]
  4. Bitwise xor [rappresentato come "^"]
  5. Shift a sinistra bitwise [rappresentato come "<<”]
  6. Shift bitwise a destra [rappresentato come ">>"]

Tavolo bitwise o verità

Il bitwise o l'operatore produce 1 quando almeno un operando è impostato su 1. Ecco la tabella della verità per il bit o l'operatore:

Bit-1 Bit-2 Bit-1 | Bit-2
0 0 0
0 1 1
1 0 1
1 1 1

Tavolo da bitwise e verità

Bitwise e l'operatore produce 1 quando entrambi gli operandi sono impostati su 1. Ecco la tabella della verità per il bitwise e l'operatore:

Bit-1 Bit-2 Bit-1 e bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitway non tabella della verità

Bitway non l'operatore inverte l'operando. Ecco la tabella della verità per Bitwise non operatore:

Bit-1 ~ Bit-1
0 1
1 0

Tavolo da bitwise xor verità

L'operatore XOR BITWise produce 1 se, e solo se, uno degli operandi è impostato su 1. Ecco la tabella della verità per bitwise e operatore:

Bit-1 Bit-2 Bit-1 ^ bit-2
0 0 0
0 1 1
1 0 1
1 1 0

Operatore di spostamento a sinistra bitwise

L'operatore di spostamento a sinistra bitwise sposta tutti i bit lasciati dal numero specificato di bit specificati. Se hai lasciato il turno di tutti i bit dei dati per 1, i dati originali verranno moltiplicati per 2. Allo stesso modo, se hai lasciato il turno di tutti i bit dei dati per 2, i dati originali verranno moltiplicati per 4.

Operatore di cambio a destra bitwise

L'operatore di spostamento a destra bitwise sposta tutti i bit proprio per il numero specificato di bit specificati. Se si sposta bene tutti i bit dei dati di 1, i dati originali saranno divisi (Divisione intera) di 2. Allo stesso modo, se si sposta correttamente tutti i bit dei dati per 2, i dati originali saranno divisi (Divisione intera) di 4.

Esempi

Ora, dal momento che abbiamo compreso il concetto di base delle operazioni bitwise, guardiamo un paio di esempi, che ti aiuteranno a comprendere le operazioni bitwise in C ++:

  • Esempio-1: bitwise o operatore
  • Esempio-2: bitwise e operatore
  • Esempio-3: Bitwise non operatore
  • Esempio-4: Operatore XOR Bitwise
  • Esempio-5: operatore di spostamento a sinistra bitwise
  • Esempio-6: operatore di spostamento a destra bitwise
  • Esempio-7: imposta bit
  • Esempio-8: Bit Clear

L'esempio-7 e 8 sono per dimostrare l'uso del mondo reale degli operatori bitwise nel linguaggio di programmazione C ++.

Esempio-1: bitwise o operatore

In questo programma di esempio, dimostreremo il bit o l'operatore.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, risultato = 0;
// bitwise o operazione
risultato = First_num | Second_num;
// Stampa i numeri di input
cout << endl;
display ("primo numero è =", first_num);
Display ("Secondo numero è =", secondo_num);
// Stampa il valore di output
display ("first_num | second_num =", risultato);
cout << endl;
restituzione 0;

Esempio-2: bitwise e operatore

In questo programma di esempio, illustreremo Bitwise e Operator.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, risultato = 0;
// bitwise e operazione
risultato = First_num & second_num;
// Stampa i numeri di input
cout << endl;
display ("primo numero è =", first_num);
Splay ("Secondo numero è =", secondo_num);
// Stampa il valore di output
display ("first_num & second_num =", risultato);
cout << endl;
restituzione 0;

Esempio-3: Bitwise non operatore

In questo programma di esempio, capiremo come non funziona Bitwise Operator in C++.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, risultato_1 = 0, risultato_2 = 0;
// Bitwise non operativo
risultato_1 = ~ first_num;
risultato_2 = ~ second_num;
// Stampa i numeri di input e il valore di output
cout << endl;
display ("primo numero è =", first_num);
display ("~ first_num =", result_1);
cout << endl;
// Stampa i numeri di input e il valore di output
Display ("Secondo numero è =", secondo_num);
display ("~ second_num =", result_2);
cout << endl;
restituzione 0;

Esempio-4: Operatore XOR Bitwise

Questo programma intende spiegare come funziona l'operatore XOR Bitwise in C++.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() <<
"((" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, risultato = 0;
// Operazione Bitwise xor
risultato = first_num ^ second_num;
// Stampa i numeri di input
cout << endl;
display ("primo numero è =", first_num);
Display ("Secondo numero è =", secondo_num);
// Stampa il valore di output
display ("first_num ^ second_num =", risultato);
cout << endl;
restituzione 0;

Esempio-5: operatore di spostamento a sinistra bitwise

Ora vedremo l'esempio dell'operatore di spostamento a sinistra bitwise. In questo programma, abbiamo dichiarato due numeri, First_num e Second_num del tipo intero. Qui, il "First_num" è spostato a sinistra da un bit e il "secondo_num" è spostato a sinistra da due bit.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() <<
"((" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, risultato_1 = 0, risultato_2 = 0;
// Operazione di spostamento a sinistra bitwise
risultato_1 = first_num << 1;
risultato_2 = second_num << 2;
// Stampa i numeri di input e il valore di output
cout << endl;
display ("primo numero è =", first_num);
display ("first_num << 1 = ", result_1);
cout << endl;
// Stampa i numeri di input e il valore di output
Display ("Secondo numero è =", secondo_num);
Display ("Second_num << 2 = ", result_2);
cout << endl;
restituzione 0;

Esempio-6: operatore di spostamento a destra bitwise

Ora vedremo un altro esempio per capire l'operatore di spostamento a destra bitwise. Abbiamo dichiarato due numeri, First_num e Second_num del tipo intero. Qui, il "First_num" è spostato a destra da un bit e il "secondo_num" è spostato a destra da due bit.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() << " (" <<
MyBitset.to_ulong () << ") " << endl;

int main ()

int first_num = 7, second_num = 9, risultato_1 = 0, risultato_2 = 0;
// operazione di spostamento a destra bitwise
risultato_1 = first_num >> 1;
risultato_2 = second_num >> 2;
// Stampa i numeri di input e il valore di output
cout << endl;
display ("primo numero è =", first_num);
display ("first_num >> 1 =", risultato_1);
cout << endl;
// Stampa i numeri di input e il valore di output
Display ("Secondo numero è =", secondo_num);
display ("second_num >> 2 =", risultato_2);
cout << endl;
restituzione 0;

Esempio-7: imposta bit

Questo esempio intende mostrare come impostare un bit particolare usando gli operatori bitwise.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() << " (" <<
MyBitset.to_ulong () << ") " << endl;

int main ()

int first_num = 7, second_num = 9;
// Stampa il numero di input - First_num
cout << endl;
display ("primo numero è =", first_num);
// imposta il 5 ° bit
first_num | = (1ul << 5);
// Stampa output
Display ("Imposta il 5 ° bit di First_num =", First_num);
cout << endl;
// Stampa il numero di input - Second_num
cout << endl;
Display ("Secondo numero è =", secondo_num);
// imposta il 6 ° bit
Second_num | = (1ul << 6);
// Stampa output
Display ("Imposta il 6 ° bit di secondo_num =", second_num);
cout << endl;
restituzione 0;

Esempio-8: Bit Clear

Questo esempio intende mostrare come cancellare un bit particolare usando gli operatori bitwise.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
// funzione display ()
void display (String print_msg, numero int)

bitset<16> mybitset (numero);
cout << print_msg;
cout << myBitSet.to_string() << " (" <<
MyBitset.to_ulong () << ") " << endl;

int main ()

int first_num = 7, second_num = 9;
// Stampa il numero di input - First_num
cout << endl;
display ("primo numero è =", first_num);
// Cancella 2nd bit
First_num & = ~ (1ul << 2);
// Stampa output
display ("imposta 2nd bit di first_num =", first_num);
cout << endl;
// Stampa il numero di input - Second_num
cout << endl;
Display ("Secondo numero è =", secondo_num);
// Cancella 3 ° bit
Second_num & = ~ (1ul << 3);
// Stampa output
Display ("Imposta 3 ° bit di secondo_num =", second_num);
cout << endl;
restituzione 0;

Conclusione

L'operatore bitwise viene utilizzato principalmente per manipolare i singoli bit per il tipo di dati interi e dei caratteri. L'operatore bitwise è fortemente utilizzato nello sviluppo di software incorporato. Quindi, se stai sviluppando un driver di dispositivo o un sistema molto vicino al livello hardware, è possibile utilizzare questi operatori bitwise.