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:
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 ++:
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 ++:
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.