Opérateurs bit à bit.
Les opérateurs logiques binaires sont ceux qui agissent sur des nombres binaires à niveau de ses bits individuels.
Opérateurs logiques binaires | |
& | AND bit à bit |
| | OR bit à bit |
^ | XOR bit à bit |
~ | NOT bit à bit |
<< | Déplacement de bit à gauche |
>> | Déplacement de bit à droite |
&
Cet opérateur correspond à l’opération logique AND. Elle compare les bits, un par un. Si pendant la comparaison les deux bits sont « 1 » le résultat sera « 1 »; dans le cas contraire, le résultat sera « 0 ».
Exemple:
int a = 92; // en binaire: 0000000001011100
int b = 101; // en binaire: 0000000001100101
int c = a & b; // résultat: 0000000001000100, ou 68 en décimal.
|
Cet opérateur prend deux nombres entiers et réalise l’opération OR inclusive en chaque paire de bits. Le résultat est « 1 » si un des deux est « 1 » et « 0 » si les deux bit sont « 0 ».
Exemple:
int a = 92; // en binaire: 0000000001011100
int b = 101; // en binaire: 0000000001100101
int c = a | b; // résultat : 0000000001111101, ou 125 en décimal.
^
Cet opérateur prend deux nombres entiers et réalise l’opération OR exclusive en chaque paire de bits. Le résultat es « 1 » si les bits sont différents, et « 0 » si les bits sont les mêmes.
int x = 12; // binaire: 1100
int y = 10; // binaire: 1010
int z = x ^ y; // résultat:0110, ou décimal 6
~
Cet opérateur réalise une négation logique à chaque bit, inversant les bits du nombre de façon que les « 0 » sont des « 1 » et viceversa.
Exemple:
int a = 103; // binaire: 0000000001100111
int b = ~a; // binaire: 1111111110011000 = -104
>> et <<
Ceux sont les opérateurs de déplacement binaire et permettent de déplacer les bits d’une variable à une certaine position avant de travailler avec eux. Le premier opérateur les déplace vers la droite et le deuxième vers la gauche.
Exemples:
int a = 40; // binaire: 0000000000101000
int b = a >> 3; // binaire: 0000000000000101, ou 5
int a = 5; // binaire: 0000000000000101
int b = a << 3; // binaire: 0000000000101000, ou 40