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