Dans ce didacticiel, vous découvrirez les 6 opérateurs binaires de la programmation C avec des exemples.
Dans l'unité arithmétique-logique (qui se trouve dans la CPU), les opérations mathématiques telles que: l'addition, la soustraction, la multiplication et la division sont effectuées au niveau du bit. Pour effectuer des opérations au niveau du bit dans la programmation C, des opérateurs au niveau du bit sont utilisés.
| Les opérateurs | Signification des opérateurs |
|---|---|
| & | ET au niveau du bit |
| | | OU au niveau du bit |
| ^ | XOR au niveau du bit |
| ~ | Complément au niveau du bit |
| << | Shift gauche |
| >> | Shift vers la droite |
Opérateur AND au niveau du bit &
La sortie de ET au niveau du bit est 1 si les bits correspondants de deux opérandes sont 1. Si l'un des bits d'un opérande est 0, le résultat du bit correspondant est évalué à 0.
Supposons l'opération ET au niveau du bit de deux entiers 12 et 25.
12 = 00001100 (en binaire) 25 = 00011001 (en binaire) Bit Fonctionnement de 12 et 25 00001100 & 00011001 ________ 00001000 = 8 (en décimal)
Exemple n ° 1: ET au niveau du bit
#include int main() ( int a = 12, b = 25; printf("Output = %d", a&b); return 0; )
Production
Sortie = 8
Opérateur OR au niveau du bit |
La sortie du OU au niveau du bit est 1 si au moins un bit correspondant de deux opérandes est 1. Dans la programmation C, l'opérateur OU au niveau du bit est noté |.
12 = 00001100 (en binaire) 25 = 00011001 (en binaire) au niveau du bit OU Fonctionnement de 12 et 25 00001100 | 00011001 ________ 00011101 = 29 (en décimal)
Exemple # 2: OU au niveau du bit
#include int main() ( int a = 12, b = 25; printf("Output = %d", a|b); return 0; )
Production
Sortie = 29
Opérateur XOR au niveau du bit (OU exclusif) ^
Le résultat de l'opérateur XOR au niveau du bit est 1 si les bits correspondants de deux opérandes sont opposés. Il est noté ^.
12 = 00001100 (en binaire) 25 = 00011001 (en binaire) XOR bit à bit Fonctionnement de 12 et 25 00001100 00011001 ________ 00010101 = 21 (en décimal)
Exemple # 3: XOR au niveau du bit
#include int main() ( int a = 12, b = 25; printf("Output = %d", a^b); return 0; )
Production
Sortie = 21
Opérateur de complément au niveau du bit ~
L'opérateur de compliment au niveau du bit est un opérateur unaire (ne fonctionne que sur un seul opérande). Il change 1 en 0 et 0 en 1. Il est noté ~.
35 = 00100011 (en binaire) Complément binaire Fonctionnement de 35 ~ 00100011 ________ 11011100 = 220 (en décimal)
Twist dans l'opérateur de complément au niveau du bit dans la programmation C
Le complément bit à 35 (~ 35) est -36 au lieu de 220, mais pourquoi?
Pour tout entier n, le complément au niveau du bit de n sera -(n+1). Pour comprendre cela, vous devez avoir la connaissance du complément de 2.
Complément 2
Le complément à deux est une opération sur les nombres binaires. Le complément à 2 d'un nombre est égal au complément de ce nombre plus 1. Par exemple:
Complément de 2 décimal binaire 0 00000000 - (11111111 + 1) = -00000000 = -0 (décimal) 1 00000001 - (11111110 + 1) = -11111111 = -256 (décimal) 12 00001100 - (11110011 + 1) = -11110100 = -244 (décimal) 220 11011100 - (00100011 + 1) = -00100100 = -36 (décimal) Remarque: le débordement est ignoré lors du calcul du complément à 2.
Le complément bit à bit de 35 est 220 (en décimal). Le complément 2 de 220 est -36. Par conséquent, la sortie est -36 au lieu de 220.
Le complément bit à bit de tout nombre N est - (N + 1). Voici comment:
complément au niveau du bit de N = ~ N (représenté sous la forme du complément à 2) 2 'complément de ~ N = - (~ (~ N) +1) = - (N + 1)
Exemple # 4: Complément au niveau du bit
#include int main() ( printf("Output = %d",~35); printf("Output = %d",~-12); return 0; )
Production
Sortie = -36 Sortie = 11
Opérateurs de décalage en programmation C
There are two shift operators in C programming:
- Right shift operator
- Left shift operator.
Right Shift Operator
Right shift operator shifts all bits towards right by certain number of specified bits. It is denoted by>>.
212 = 11010100 (In binary) 212>>2 = 00110101 (In binary) (Right shift by two bits) 212>>7 = 00000001 (In binary) 212>>8 = 00000000 212>>0 = 11010100 (No Shift)
Left Shift Operator
Left shift operator shifts all bits towards left by a certain number of specified bits. The bit positions that have been vacated by the left shift operator are filled with 0. The symbol of the left shift operator is <<.
212 = 11010100 (In binary) 212<<1 = 110101000 (In binary) (Left shift by one bit) 212<<0 = 11010100 (Shift by 0) 212<<4 = 110101000000 (In binary) =3392(In decimal)
Example #5: Shift Operators
#include int main() ( int num=212, i; for (i=0; i>i); printf(""); for (i=0; i<=2; ++i) printf("Left shift by %d: %d", i, num<
Right Shift by 0: 212 Right Shift by 1: 106 Right Shift by 2: 53 Left Shift by 0: 212 Left Shift by 1: 424 Left Shift by 2: 848








