Opérateurs C ++ Bitwise

Opérateurs C ++ Bitwise
Dans cet article, nous allons discuter des opérateurs de bit dans le langage de programmation C ++. Nous verrons plusieurs exemples de travail pour comprendre les opérations bit. En C ++, les opérateurs bitwise travaillent au niveau du bit individuel.

Bref aperçu des opérateurs bit

Un opérateur est un symbole qui demande au compilateur d'effectuer certaines opérations mathématiques ou logiques. Il existe plusieurs types d'opérateurs en C ++, comme:

  1. Opérateurs arithmétiques
  2. Opérateurs logiques
  3. Opérateurs relationnels
  4. Opérateurs d'affectation
  5. Opérateurs
  6. Opérateurs de la mission

Tous les opérateurs bit. L'opérateur bit. Par exemple, si vous avez une variable de type entier avec la taille de 32 bits et que vous appliquez le bit. Ainsi, finalement, les 32 bits de la variable seront inversés.

Il y a six opérateurs de bit différents disponibles en C ++:

  1. Bitwise ou [représenté comme «|»]
  2. Bitwise et [représenté comme «&»]
  3. Bitwise pas [représenté comme «~»]
  4. Xor bitwise [représenté comme «^»]
  5. Shift gauche à gauche [représenté comme «<<”]
  6. Shift à droite bitwise [représenté comme «>>»]

Tableau de la bitwise ou de vérité

L'opérateur bit dans le sens bit. Voici la table de vérité pour le bit ou l'opérateur:

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

Bitwise et table de vérité

Bitwise et l'opérateur produit 1 lorsque les deux opérandes sont réglés sur 1. Voici la table de vérité pour le bit et l'opérateur:

Bit-1 Bit-2 Bit-1 & bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitwise Not Truth Table

Bitwise pas l'opérateur inverse l'opérande. Voici la table de vérité pour Bitwise Not Operator:

Bit-1 ~ Bit-1
0 1
1 0

Table de vérité xor

L'opérateur xor bitwise produit 1 si, et seulement si, l'un des opérandes est défini sur 1. Voici la table de vérité pour le bit et l'opérateur:

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

Opérateur de quart de bit

L'opérateur de décalage à gauche à gauche déplace tous les bits laissés par le nombre spécifié de bits spécifiés. Si vous avez quitté déplacer tous les bits des données par 1, les données d'origine seront multipliées par 2. De même, si vous avez quitté déplacer tous les bits des données par 2, les données d'origine seront multipliées par 4.

Opérateur de quart de droite sur le sens bit

L'opérateur de décalage à droite bitwise déplace tous les bits juste par le nombre spécifié de bits spécifiés. Si vous déplacez à droite tous les bits des données par 1, les données d'origine seront divisées (division Integer) par 2. De même, si vous déplacez à droite tous les bits des données par 2, les données d'origine seront divisées (division entier) par 4.

Exemples

Maintenant, puisque nous avons compris le concept de base des opérations bitwise, regardons quelques exemples, ce qui vous aidera à comprendre les opérations bitwise en C ++:

  • Exemple-1: Bitwise ou opérateur
  • Exemple-2: Bitwise et opérateur
  • Exemple-3: Bitwise Not Operator
  • Exemple-4: opérateur XOR sur bitwise
  • Exemple-5: opérateur de quart de travail à gauche bitwise
  • Exemple-6: opérateur de changement de droite sur le sens bit
  • Exemple-7: Set Bit
  • Exemple-8: bit clair

Les exemples-7 et 8 sont pour démontrer l'utilisation réelle des opérateurs bitwise dans le langage de programmation C ++.

Exemple-1: Bitwise ou opérateur

Dans cet exemple de programme, nous démontrerons le bit ou l'opérateur.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main()

int premier_num = 7, second_num = 9, result = 0;
// Bitwise ou opération
result = first_num | second_num;
// imprime les numéros d'entrée
couter << endl;
affiche ("premier numéro est =", first_num);
affiche ("deuxième numéro est =", second_num);
// imprime la valeur de sortie
affiche ("first_num | second_num =", résultat);
couter << endl;
retour 0;

Exemple-2: Bitwise et opérateur

Dans cet exemple de programme, nous illustrons le bit et l'opérateur.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main()

int premier_num = 7, second_num = 9, result = 0;
// Bitwise et opération
result = first_num & second_num;
// imprime les numéros d'entrée
couter << endl;
affiche ("premier numéro est =", first_num);
Splay ("Deuxième numéro est =", second_num);
// imprime la valeur de sortie
affiche ("first_num & second_num =", résultat);
couter << endl;
retour 0;

Exemple-3: Bitwise Not Operator

Dans cet exemple de programme, nous comprendrons comment fonctionne Bitwise Not Operator en C++.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main()

int premiers_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Bitwise pas opération
result_1 = ~ first_num;
result_2 = ~ second_num;
// imprime les numéros d'entrée et la valeur de sortie
couter << endl;
affiche ("premier numéro est =", first_num);
affiche ("~ first_num =", result_1);
couter << endl;
// imprime les numéros d'entrée et la valeur de sortie
affiche ("deuxième numéro est =", second_num);
affiche ("~ second_num =", result_2);
couter << endl;
retour 0;

Exemple-4: opérateur XOR sur bitwise

Ce programme a l'intention d'expliquer comment fonctionne l'opérateur XOR à bit++.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() <<
"(" << myBitSet.to_ulong() << ") " << endl;

int main()

int premier_num = 7, second_num = 9, result = 0;
// Opération XOR bitwise
result = first_num ^ second_num;
// imprime les numéros d'entrée
couter << endl;
affiche ("premier numéro est =", first_num);
affiche ("deuxième numéro est =", second_num);
// imprime la valeur de sortie
affiche ("first_num ^ second_num =", résultat);
couter << endl;
retour 0;

Exemple-5: opérateur de quart de travail à gauche bitwise

Maintenant, nous verrons l'exemple de l'opérateur de quart de bit. Dans ce programme, nous avons déclaré deux nombres, premier_num et second_num de type entier. Ici, le «premier_num» est décalé à gauche d'un bit, et le «second_num» est décalé à gauche par deux bits.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() <<
"(" << myBitSet.to_ulong() << ") " << endl;

int main()

int premiers_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// opération de décalage à gauche bitwise
result_1 = first_num << 1;
result_2 = second_num << 2;
// imprime les numéros d'entrée et la valeur de sortie
couter << endl;
affiche ("premier numéro est =", first_num);
affichage ("First_num << 1 = ", result_1);
couter << endl;
// imprime les numéros d'entrée et la valeur de sortie
affiche ("deuxième numéro est =", second_num);
affichage ("second_num << 2 = ", result_2);
couter << endl;
retour 0;

Exemple-6: opérateur de changement de droite sur le sens bit

Maintenant, nous verrons un autre exemple pour comprendre l'opérateur de changement de droite bitwise. Nous avons déclaré deux nombres, premier_num et second_num de type entier. Ici, le «premier_num» est à droite d'un bit, et le «second_num» est décalé à droite de deux bits.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() << " (" <<
mybitset.to_ulong () << ") " << endl;

int main()

int premiers_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Opération de décalage à droite bitwise
result_1 = first_num >> 1;
result_2 = second_num >> 2;
// imprime les numéros d'entrée et la valeur de sortie
couter << endl;
affiche ("premier numéro est =", first_num);
affiche ("first_num >> 1 =", result_1);
couter << endl;
// imprime les numéros d'entrée et la valeur de sortie
affiche ("deuxième numéro est =", second_num);
affiche ("second_num >> 2 =", result_2);
couter << endl;
retour 0;

Exemple-7: Set Bit

Cet exemple a l'intention de montrer comment définir un bit particulier à l'aide d'opérateurs bit.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() << " (" <<
mybitset.to_ulong () << ") " << endl;

int main()

int premier_num = 7, second_num = 9;
// imprime le numéro d'entrée - first_num
couter << endl;
affiche ("premier numéro est =", first_num);
// Définir le 5ème bit
first_num | = (1ul << 5);
// Imprimer la sortie
Display ("set 5th bit de first_num =", first_num);
couter << endl;
// Imprime le numéro d'entrée - second_num
couter << endl;
affiche ("deuxième numéro est =", second_num);
// définir le 6ème bit
second_num | = (1ul << 6);
// Imprimer la sortie
affiche ("set 6th bit de second_num =", second_num);
couter << endl;
retour 0;

Exemple-8: bit clair

Cet exemple a l'intention de montrer comment effacer un bit particulier à l'aide d'opérateurs bit.

#inclure
#inclure
#inclure
Utilisation de Namespace Std;
// Fonction afficher ()
void Affichage (String print_msg, numéro int)

ensemble de bits<16> MyBitSet (numéro);
couter << print_msg;
couter << myBitSet.to_string() << " (" <<
mybitset.to_ulong () << ") " << endl;

int main()

int premier_num = 7, second_num = 9;
// imprime le numéro d'entrée - first_num
couter << endl;
affiche ("premier numéro est =", first_num);
// effacer le 2e bit
first_num & = ~ (1ul << 2);
// Imprimer la sortie
affiche ("set 2nd bit de first_num =", first_num);
couter << endl;
// Imprime le numéro d'entrée - second_num
couter << endl;
affiche ("deuxième numéro est =", second_num);
// effacer la 3e bit
second_num & = ~ (1ul << 3);
// Imprimer la sortie
affiche ("set 3rd bit de second_num =", second_num);
couter << endl;
retour 0;

Conclusion

L'opérateur bit. L'opérateur bitwise est fortement utilisé dans le développement de logiciels intégrés. Ainsi, si vous développez un pilote de périphérique ou un système très proche du niveau matériel, vous voudrez peut-être utiliser ces opérateurs bit.