Les opérations sur bits définies par Java s'appliquent aux types entiers tels que int, long, short, char et byte.
Les opérateurs au niveau du bit sont principalement utilisés pour effectuer des opérations sur les bits binaires des opérandes. Les opérations au niveau du bit représentent des calculs basés sur chaque chiffre binaire. Les opérandes et les résultats de l'opération sont tous deux des valeurs entières. Si le résultat de l'opération est un nombre négatif, la représentation complémentaire est utilisée. .
Les opérateurs de bits en langage Java sont divisés en deux catégories : les opérateurs logiques de bits et les opérateurs de décalage de bits.
Opération ET au niveau du bit :
L'opération ET au niveau du bit effectue une opération au niveau du bit sur deux données entières a et b, et le résultat de l'opération est une donnée entière c. L'algorithme est le suivant : si les bits correspondants des deux données a et b sont tous deux égaux à 1, alors le bit de c est 1, sinon il est 0.
Par exemple:
une:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c:0 0 0 1 0 0 1 0
Opération OU au niveau du bit :
L'opération OU au niveau du bit effectue une opération au niveau du bit sur deux données entières a et b, et le résultat de l'opération est une donnée entière c. L'algorithme est le suivant : si les bits correspondants des deux données a et b sont tous deux 0, alors le bit de c est 0, sinon il est 1.
Par exemple:
une:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c: 0 1 1 1 1 0 1 1
Opération NOT au niveau du bit :
L'opération NOT au niveau du bit effectue une opération au niveau du bit sur une donnée entière a, et le résultat de l'opération est une donnée entière c. L'algorithme est le suivant : si le bit correspondant de la donnée a est 0, alors le bit de c est 1, sinon il est 0.
Par exemple:
une:0 1 0 1 0 0 1 1
c:1 0 1 0 1 1 0 0
Opération XOR au niveau du bit :
L'opération XOR au niveau du bit effectue une opération au niveau du bit sur deux données entières a et b, et le résultat de l'opération est une donnée entière c. L'algorithme est le suivant : si les bits correspondants des deux données a et b sont identiques, alors le bit de c est 0, sinon il est 1.
Par exemple:
une:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c:0 1 1 0 1 0 0 1
Opération de décalage à droite au niveau du bit :
L'algorithme d'opération de décalage bit à droite vers la droite est le suivant : déplacez tous les nombres vers la droite du nombre correspondant de chiffres sous forme binaire, décalez (rejetez) les bits faibles et remplissez les bits vides des bits forts avec des zéros.
Par exemple : décaler l'entier 83 vers la droite d'1 bit
Avant le déplacement : 0 1 0 1 0 0 1 1
Après décalage : 0 0 1 0 1 0 0 1
Opération de décalage vers la gauche au niveau du bit :
L'algorithme d'opération de décalage bit à gauche vers la gauche est le suivant : décalez tous les nombres vers la gauche du nombre correspondant de chiffres sous forme binaire, décalez les bits de poids fort (rejetez) et remplissez les bits vides des bits de poids faible avec des zéros.
Par exemple : décaler l'entier 83 vers la gauche de 1 bit
Avant le déplacement : 0 1 0 1 0 0 1 1
Après décalage : 1 0 1 0 0 1 1 0
Exemple:
publicclassMain{publicstaticvoidmain(String[]args){inta=83;/*83=01010011*/intb=58;/*58=00111010*/intc=0;c=a&b;/*18=00010010*/System.out .println(a&b=+c);c=a|b;/*123=01111011*/System.out.println(a|b=+c);c=~a;/*01010011 est 10101100 après négation. le complément de 10101100 est 11010100, -84=11010100*/System.out.println(~a=+c);c=a^b;/*105=01101001*/System.out.println(a^b=+ c );c=a>>1;/*41=00101001*/System.out.println(a>>2=+c);c=a<<1;/*166=10100110*/System.println. (a<<2=+c);}}
Les résultats en cours d'exécution sont les suivants :
a&b=18a|b=123~a=-84a^b=105a>>2=41a<<2=166