Opérateurs bit à bit Java
Opérateurs au niveau du bit sont habitués à manipuler les bits d'un nombre. Nous pouvons utiliser des opérateurs au niveau du bit avec n'importe quel type de données intégral comme byte , court , entier , longue .
Types d'opérateurs au niveau du bit
Les types d'opérateurs binaires suivants sont utilisés en Java,
- ET au niveau du bit (&)
- OU au niveau du bit (|)
- XOR bit à bit (^)
- Complément binaire (~)
- Décalage bit à gauche (<<)
- Décalage binaire vers la droite (>>)
- Opérateur de décalage vers la droite non signé au niveau du bit (>>>)
Opérateur | Symbole | Exemple |
---|---|---|
ET au niveau du bit | & | Opérande1 &Opérande2 |
OU au niveau du bit | | | Opérande1 | Opérande2 |
XOR au niveau du bit | ^ | Opérande1 ^ Opérande2 |
Complément au niveau du bit | ~ | ~Opérande1 |
Décalage bit à gauche | < | Opérande1 < |
Décalage bit à droite | >> | Opérande1>> Opérande2 |
Opérateur de décalage vers la droite non signé au niveau du bit | >>> | Opérande1>>> Opérande2 |
1) Opérateur AND au niveau du bit (&)
Il s'agit d'un opérateur binaire, qui est désigné par le symbole '&'. Il effectue une opération ET bit par bit sur un nombre donné, si les deux bits sont 1, alors la sortie sera 1, sinon ce sera 0.
Opérande1 | Opérande2 | Opérande1 &Opérande2 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
Exemple :
public class Main { public static void main(String[] args) { int num1 = 5; // 0101 int num2 = 7; // 0111 int res = 0; res = num1 & num2; /* 0101 0111 ==== 0101 That is 5 */ System.out.println("Result: " + res); } }
Sortie :
Result: 5
2) Opérateur OU au niveau du bit (|)
Il s'agit d'un opérateur binaire, qui est désigné par le symbole '|'. Il effectue une opération OU bit par bit sur un nombre donné, si un bit est 1, alors la sortie sera 1, sinon ce sera 0.
Opérande1 | Opérande2 | Opérande1 | Opérande2 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Exemple :
public class Main { public static void main(String[] args) { int num1 = 5; // 0101 int num2 = 7; // 0111 int res = 0; res = num1 | num2; /* 0101 0111 ==== 0111 That is 7 */ System.out.println("Result: " + res); } }
Sortie :
Result: 7
3) Opérateur XOR au niveau du bit (^)
Il s'agit d'un opérateur binaire, qui est désigné par le symbole '^'. Il effectue une opération XOR bit par bit sur un nombre donné, si les deux bits sont différents, alors la sortie sera 1, sinon ce sera 0.
Opérande1 | Opérande2 | Opérande1 | Opérande2 |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 0 |
0 | 0 | 0 |
Exemple :
public class Main { public static void main(String[] args) { int num1 = 5; // 0101 int num2 = 7; // 0111 int res = 0; res = num1 ^ num2; /* 0101 0111 ==== 0010 That is 2 */ System.out.println("Result: " + res); } }
Sortie :
Result: 2
4) Opérateur de complément au niveau du bit (~)
Il s'agit d'un opérateur unaire, qui est désigné par le symbole '~'. Il effectue bit à bit l'opération de complément à 1 sur un nombre donné. Il a inversé les bits.
Opérande | ~Opérande |
---|---|
1 | 0 |
0 | 1 |
5) Opérateur de décalage vers la gauche au niveau du bit (<<)
C'est un opérateur binaire, qui décale le nombre de bits vers la gauche dans un nombre donné. L'opérateur de décalage à gauche multiplie le nombre de bits spécifiés de puissance 2 par le nombre donné.
Exemple :
public class Main { public static void main(String[] args) { byte num = -5; byte res = 0; res = (byte)(num << 3); /* res = -5 * (2*2*2) res = -40 */ System.out.println("Result: " + res); } }
Sortie :
Result: -40
6) Opérateur de décalage vers la droite au niveau du bit (>>)
C'est un opérateur binaire, qui décale le nombre de bits vers la droite dans un nombre donné. L'opérateur de décalage à droite divise le nombre de bits spécifiés de puissance 2 par le nombre donné.
Exemple :
public class Main { public static void main(String[] args) { byte num = -64; byte res = 0; res = (byte)(num >> 3); /* res = -64 / (2*2*2) res = -8 */ System.out.println("Result: " + res); } }
Sortie :
Result: -8
7) Opérateur de décalage vers la droite non signé au niveau du bit (>>>)
C'est un opérateur binaire, qui décale le nombre de bits vers la droite dans un nombre donné. L'opérateur de décalage à droite non signé divise le nombre non signé de bits spécifiés de puissance 2 par le nombre donné.
Exemple :
public class Main { public static void main(String[] args) { byte num = 64; byte res = 0; res = (byte)(num >>> 3); /* res = 64 / (2*2*2) res = 8 */ System.out.println("Result: " + res); } }
Sortie :
Result: 8