Opérations de masque de bits en Java
Le masque de bits est la représentation binaire de certaines données. Dans le masquage de bits, nous considérons toutes les données comme des chiffres binaires comme des 0 et des 1.
On peut aussi utiliser ces chiffres binaires comme booléens puisque 1
représente true
et 0
représente false
.
Opérations de masque de bits en Java
Une autre définition du masquage de bits est la visualisation d’un nombre ou d’autres données en représentation binaire. Certains bits sont mis
et d’autres sont non mis
, où mis
signifie true
ou 1
et non mis
signifie false
ou 0
.
Disons que nous avons une valeur binaire 10011
. Ici, les 1er, 4ème et 5ème bits sont des sets
tandis que les 2e et 3e sont des unsets
.
Comprenons le masque de bits à travers un exemple. Supposons que nous ayons un ensemble de quatre caractères {w,x,y,z}
, et que nous souhaitions une représentation différente de la chaîne de caractères.
Pour créer un masque de 4 bits {_ _ _ _}
, chaque bit nous donne l’information si nous nous référons à ce caractère ou non. Pour simplifier, la combinaison binaire 1001
signifie w,z
, 0000
signifie une chaîne vide et 1111
signifie w, x, y, z
.
Maintenant que nous avons compris les bits et le masquage de bits, il est temps d’en savoir plus sur les opérateurs de bits utilisés pour manipuler les bits.
Opérateurs au niveau du bit en Java
Les opérateurs bit à bit Java sont utilisés pour effectuer la manipulation des bits. Ces opérateurs peuvent être utilisés dans n’importe quel type intégral comme short, byte, long, char, int, etc.
Nous avons différents opérateurs bit à bit. Chacun d’eux est utilisé dans un but différent.
Ce sont les suivants :
- ET par bit (
&
) - OU par bit (
|
) - Complément par bit (
~
) - XOR par bit (
^
)
Opérateur ET (&
) au niveau du bit en Java
L’opérateur AND est un opérateur au niveau du bit noté &
. Il effectue un calcul petit à petit de deux valeurs ou plus et renvoie true
si les deux valeurs sont true
; sinon, false
.
1(True) & 1(True) = 1(True)
0(False) & 0(False) = 0(False)
1(True) & 0(False) = 0(False)
0(False) & 1(True) = 0(False)
Exemple de code :
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
int a = 3;
int b = 4;
// bitwise AND
// 0011 & 0100=0000 = 0
System.out.println("a & b = " + (a & b));
}
}
Production:
a & b = 0
Opérateur OR (|
) au niveau du bit en Java
L’opérateur OU est également un opérateur au niveau du bit noté |
, mais il est différent de l’opérateur ET (&
). Elle renvoie true
si et seulement si une seule valeur est true
; sinon, false
.
1(True) | 1(True) = 1(True)
0(False) | 0(False) = 0(False)
1(True) | 0(False) = 1(True)
0(False) | 1(True) = 1(True)
Exemple de code :
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
int a = 3;
int b = 4;
// bitwise OR
// 0011 & 0100=0000 = 7
System.out.println("a | b = " + (a | b));
}
}
Production:
a & b = 7
Opérateur de complément binaire (~
) en Java
L’opérateur de complément binaire (~
), également connu sous le nom d’opérateur NOT
, peut inverser un motif binaire. C’est un opérateur unaire car il est utilisé avec une seule valeur.
Supposons que nous ayons un nombre binaire, 10110
, et que nous voulions l’annuler avec l’opérateur de complément binaire (~
). Il devient 01001
.
Il a inversé les 0 en 1 et les 1 en 0.
~ 1(True) = 0(False)
~ 0(False) = 1(True)
Exemple de code :
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
// Initial values
int a = 3, b;
// bitwise complement of a
// a = 011 where b = ~a, b =100
b = ~a;
System.out.println("~a = " + b);
}
}
Production:
~a = -4
Opérateur Bitwise XOR (^
) en Java
L’opérateur Java bitwise XOR est un opérateur binaire noté ^
.
Elle renvoie true
si les valeurs binaires d’entrée sont toutes les deux différentes. Cependant, si les valeurs d’entrée sont les mêmes, soit 0 ou 1, le résultat est false
.
1(True) ^ 1(True) = 0(False)
0(False) ^ 0(False) = 0(False)
1(True) ^ 0(False) = 1(True)
0(False) ^ 1(True) = 1(True)
Exemple de code :
package articlecodesinjava;
public class ArticleCodesInJava {
public static void main(String[] args) {
// Initial values
int a = 3;
int b = 4;
// bitwise xor
// 0011 ^ 0100 = 0111 = 7
System.out.println("a ^ b = " + (a ^ b));
}
}
Production:
a ^ b = 7
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn