1. &Opérateur au niveau du bit

Nous avons dit précédemment que toutes les données sont stockées en mémoire dans une représentation binaire. Il y a donc assez longtemps, les programmeurs ont trouvé de nombreuses façons intéressantes de travailler avec des nombres binaires. Par exemple, Java a des opérateurs logiques qui opèrent sur les bits de la représentation binaire d'un nombre : &(AND), | (OR), ~(NOT ou complément) et ^(XOR - ou exclusif).

a & b
Opérateur au niveau du bit &(ET)

Cet opérateur est très similaire à l' &opérateur logique (AND), sauf qu'il est désigné par une seule esperluette, et non deux :

Et il est appliqué à des bits individuels. Chaque opérande est traité comme un tableau de bits, et le iième bit du résultat est calculé en utilisant le iième bit de chacun des deux opérandes.

Le premier bit du résultat sera calculé en fonction du premier bit du nombre a et du premier bit du nombre b, le deuxième bit — en fonction du deuxième bit du nombre a et du deuxième bit du nombre b, etc.

L' &opérateur (AND) signifie "le bit résultant est égal à un uniquement si le bit correspondant du nombre aest égal à un, ANDle bit correspondant du nombre best égal à un":

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

Exemples:

Exemple Résultat
0b0011 & 0b1010
0b0010
0b1111 & 0b0000
0b0000
0b1010 & 0b0101
0b0000
0b1111 & 0b1010
0b1010

2. |Opérateur au niveau du bit

Cet opérateur est très similaire à l' |opérateur logique (OU), sauf qu'il est indiqué par une seule ligne verticale, et non deux :

a | b

Et il est appliqué à des bits individuels. Chaque opérande est traité comme un tableau de bits, et le ième bit du résultat est calculé en utilisant le ième bit de chacun des deux opérandes.

L' |opérateur au niveau du bit (OU) signifie "le bit résultant est égal à un si le bit correspondant du nombre aest égal à un, ORle bit correspondant du nombre best égal à un":

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

Exemples:

Exemple Résultat
0b0011 | 0b1010
0b1011
0b1110 | 0b0000
0b1110
0b1010 | 0b0101
0b1111
0b1111 | 0b1010
0b1111

Ce n'est que lorsque les bits correspondants (les bits à la même position) des deux nombres sont nuls que le bit correspondant du résultat est égal à zéro.



3. ^Opérateur au niveau du bit (XOR ou "exclusif ou")

L' XORopérateur, également prononcé exclusif ou , est désigné par le ^symbole . Pour le saisir au clavier, appuyez sur Maj + 6 (sur une disposition de clavier anglais).

a ^ b

Cet opérateur est quelque peu similaire à l' ORopérateur, notamment en ce qu'il porte un nom similaire :XOR

L' ^opérateur au niveau du bit (XOR) signifie "le bit résultant est égal à un si le bit correspondant du nombre aest égal à un, ORle bit correspondant du nombre best égal à un mais pas les deux en même temps":

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

Exemples:

Exemple Résultat
0b0011 ^ 0b1010
0b1001
0b1110 ^ 0b0000
0b1110
0b1010 ^ 0b0101
0b1111
0b1111 ^ 0b1010
0b0101

Ce n'est que lorsque les bits correspondants (les bits à la même position) des deux nombres sont différents que le bit correspondant du résultat est égal à un . Si les bits sont identiques , le bit résultant est égal à zéro .



4. ~Opérateur au niveau du bit (NOT, COMPLEMENT)

Je pense que vous pouvez déjà deviner ce qu'il fait. Cet opérateur est très similaire à l' !opérateur logique (NOT), mais il est indiqué par un tilde et non par un point d'exclamation :

~a

Il s'agit d'un opérateur unaire , ce qui signifie qu'il s'applique à un seul nombre et non à deux. Il apparaît avant cet opérande unique.

L' ~opérateur au niveau du bit signifie "le bit résultant est un si le bit correspondant du nombre aest zéro, et il est zéro si le bit correspondant du nombre aest un":

~1 = 0
~0 = 1

Exemples:

Exemple Résultat
~0b0011
0b1100
~0b0000
0b1111
~0b0101
0b1010
~0b1111
0b0000

Cet opérateur change simplement le bit qui est 1à 0et les bits qui sont 0à 1.