logo

Opérateur au niveau du bit en C

Les opérateurs au niveau du bit sont les opérateurs utilisés pour effectuer les opérations sur les données au niveau du bit. Lorsque nous effectuons des opérations au niveau du bit, cela est également appelé programmation au niveau du bit. Il se compose de deux chiffres, 0 ou 1. Il est principalement utilisé dans les calculs numériques pour accélérer les calculs.

Nous avons différents types d’opérateurs bit à bit dans le langage de programmation C. Voici la liste des opérateurs au niveau du bit :

Opérateur Signification de l'opérateur
& Opérateur ET au niveau du bit
| Opérateur OU au niveau du bit
^ Opérateur OU exclusif au niveau du bit
~ Opérateur complémentaire à un (opérateur unaire)
<< Opérateur de décalage à gauche
>> Opérateur de décalage à droite

Regardons la table de vérité des opérateurs bit à bit.

X ET X&Y X|Y X^Y
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 1

Opérateur ET au niveau du bit

L’opérateur AND au niveau du bit est désigné par le seul signe esperluette (&). Deux opérandes entiers sont écrits de part et d'autre de l'opérateur (&). Si les bits correspondants des deux opérandes sont 1, alors la sortie de l'opération ET au niveau du bit est 1 ; sinon, la sortie serait 0.

Par exemple,

 We have two variables a and b. a =6; b=4; The binary representation of the above two variables are given below: a = 0110 b = 0100 When we apply the bitwise AND operation in the above two variables, i.e., a&amp;b, the output would be: Result = 0100 

Comme nous pouvons le constater à partir du résultat ci-dessus, les bits des deux variables sont comparés un par un. Si le bit des deux variables est 1 alors la sortie serait 1, sinon 0.

Comprenons l'opérateur ET au niveau du bit à travers le programme.

 #include int main() { int a=6, b=14; // variable declarations printf(&apos;The output of the Bitwise AND operator a&amp;b is %d&apos;,a&amp;b); return 0; } 

Dans le code ci-dessus, nous avons créé deux variables, c'est-à-dire « a » et « b ». Les valeurs de « a » et « b » sont respectivement 6 et 14. Les valeurs binaires de « a » et « b » sont respectivement 0110 et 1110. Lorsque l'on applique l'opérateur AND entre ces deux variables,

une ET b = 0110 && 1110 = 0110

javascript en cliquant sur

Sortir

Opérateur au niveau du bit en C

Opérateur OU au niveau du bit

L'opérateur OU au niveau du bit est représenté par un seul signe vertical (|). Deux opérandes entiers sont écrits de part et d'autre du symbole (|). Si la valeur binaire de l’un des opérandes est 1, alors la sortie serait 1, sinon 0.

Par exemple,

 We consider two variables, a = 23; b = 10; The binary representation of the above two variables would be: a = 0001 0111 b = 0000 1010 When we apply the bitwise OR operator in the above two variables, i.e., a|b , then the output would be: Result = 0001 1111 

Comme nous pouvons le constater à partir du résultat ci-dessus, les bits des deux opérandes sont comparés un par un ; si la valeur de l'un ou l'autre bit est 1, alors la sortie serait 1 sinon 0.

Comprenons l'opérateur OU au niveau du bit à travers un programme.

Java noyau Java
 #include int main() int a=23,b=10; // variable declarations printf(&apos;The output of the Bitwise OR operator a 

Sortir

Opérateur au niveau du bit en C

Opérateur OU exclusif au niveau du bit

L’opérateur OU exclusif au niveau du bit est désigné par le symbole (^). Deux opérandes sont écrits de part et d'autre de l'opérateur OU exclusif. Si le bit correspondant de l’un des opérandes est 1, alors la sortie serait 1, sinon 0.

Par exemple,

 We consider two variables a and b, a = 12; b = 10; The binary representation of the above two variables would be: a = 0000 1100 b = 0000 1010 When we apply the bitwise exclusive OR operator in the above two variables (a^b), then the result would be: Result = 0000 1110 

Comme nous pouvons le constater à partir du résultat ci-dessus, les bits des deux opérandes sont comparés un par un ; si la valeur binaire correspondante de l'un des opérandes est 1, alors la sortie serait 1 sinon 0.

Comprenons l'opérateur OU exclusif au niveau du bit via un programme.

 #include int main() { int a=12,b=10; // variable declarations printf(&apos;The output of the Bitwise exclusive OR operator a^b is %d&apos;,a^b); return 0; } 

Sortir

Opérateur au niveau du bit en C

Opérateur de complément au niveau du bit

L'opérateur de complément au niveau du bit est également connu sous le nom d'opérateur de complément à un. Il est représenté par le symbole tilde (~). Il ne prend qu'un seul opérande ou variable et effectue une opération complémentaire sur un opérande. Lorsque nous appliquons l’opération de complément sur n’importe quel bit, alors 0 devient 1 et 1 devient 0.

Par exemple,

 If we have a variable named &apos;a&apos;, a = 8; The binary representation of the above variable is given below: a = 1000 When we apply the bitwise complement operator to the operand, then the output would be: Result = 0111 

Comme nous pouvons le constater à partir du résultat ci-dessus, si le bit est 1, alors il devient 0 sinon 1.

Comprenons l'opérateur complément à travers un programme.

 #include int main() { int a=8; // variable declarations printf(&apos;The output of the Bitwise complement operator ~a is %d&apos;,~a); return 0; } 

Sortir

Opérateur au niveau du bit en C

Opérateurs de décalage au niveau du bit

Deux types d'opérateurs de décalage au niveau du bit existent dans la programmation C. Les opérateurs de décalage au niveau du bit décaleront les bits soit vers la gauche, soit vers la droite. Par conséquent, nous pouvons dire que l’opérateur de décalage au niveau du bit est divisé en deux catégories :

  • Opérateur de décalage à gauche
  • Opérateur de déplacement à droite

Opérateur de décalage à gauche

pandas iterrows

C'est un opérateur qui décale le nombre de bits vers la gauche.

La syntaxe de l'opérateur de décalage vers la gauche est donnée ci-dessous :

 Operand &lt;&lt; n 

Où,

L'opérande est une expression entière sur laquelle on applique l'opération de décalage vers la gauche.

n est le nombre de bits à décaler.

Dans le cas de l'opérateur Left-shift, 'n' bits seront décalés sur le côté gauche. Les bits « n » sur le côté gauche seront supprimés et les bits « n » sur le côté droit seront remplis de 0.

Par exemple,

 Suppose we have a statement: int a = 5; The binary representation of &apos;a&apos; is given below: a = 0101 If we want to left-shift the above representation by 2, then the statement would be: a &lt;&lt; 2; 0101&lt;<2 = 00010100 < pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=5; // variable initialization printf(&apos;The value of a&lt;<2 is : %d ', a<<2); return 0; } < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-5.webp" alt="Bitwise Operator in C"> <p> <strong>Right-shift operator</strong> </p> <p>It is an operator that shifts the number of bits to the right side.</p> <p> <strong>Syntax of the right-shift operator is given below:</strong> </p> <pre> Operand &gt;&gt; n; </pre> <p> <strong>Where,</strong> </p> <p>Operand is an integer expression on which we apply the right-shift operation.</p> <p>N is the number of bits to be shifted.</p> <p>In the case of the right-shift operator, &apos;n&apos; bits will be shifted on the right-side. The &apos;n&apos; bits on the right-side will be popped out, and &apos;n&apos; bits on the left-side are filled with 0.</p> <p> <strong>For example, </strong> </p> <pre> Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 </pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;2); return 0; } </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-6.webp" alt="Bitwise Operator in C"> <hr></2></pre></2>

Où,

L'opérande est une expression entière sur laquelle on applique l'opération de décalage vers la droite.

N est le nombre de bits à décaler.

Dans le cas de l'opérateur de décalage vers la droite, 'n' bits seront décalés sur le côté droit. Les bits « n » du côté droit seront supprimés et les bits « n » du côté gauche seront remplis de 0.

Par exemple,

 Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 

Comprenons à travers un programme.

 #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;2); return 0; } 

Sortir

Opérateur au niveau du bit en C