Maison > Java > javaDidacticiel > Manipulation de bits en Java

Manipulation de bits en Java

王林
Libérer: 2024-08-30 15:59:40
original
935 Les gens l'ont consulté

Habituellement, un programmeur travaille sur des variables de types de données comme int, float, double, String ou des collections comme Array, List, ArrayList, etc. Dans certains cas, les programmeurs doivent approfondir les données au niveau des octets et des bits pour extraire et manipuler les données. Des langages comme Java et C# vous permettent de manipuler des données au niveau des bits, ce qui signifie que vous avez accès à un bit spécifique dans un octet. Dans cette rubrique, nous allons en apprendre davantage sur la manipulation de bits en Java.

La manipulation de bits en Java est souvent nécessaire lorsque l'on travaille sur la compression et le cryptage de données, où le programmeur doit extraire des données au niveau des bits pour encoder, décoder ou compresser les données d'origine. Il existe de nombreuses autres applications de manipulation de bits que nous verrons plus loin dans cet article.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Java prend en charge le décalage de 3 bits et 4 opérateurs au niveau du bit pour effectuer des opérations au niveau des bits. Ces opérateurs peuvent être utilisés sur des types intégraux (int, short, long et byte) pour effectuer des opérations au niveau bit.

Opérateurs Java Bitwise et Bitshift

Voici les opérateurs :

Operator Description
& Bitwise AND
| Bitwise OR
~ Bitwise Complement
<< Left Shift
>> Right Shift
^ Bitwise XOR
>>> Unsigned Right Shift

Opérateurs de manipulation de bits en Java

Regardons les opérateurs plus en détail.

1. OU au niveau du bit

Il s'agit d'un opérateur binaire qui prend 2 opérandes et désigné par le symbole « | « . L'opérateur au niveau du bit compare les bits correspondants des deux opérandes. Si l’un des bits de l’opérande est 1, alors la sortie est 1 ; sinon, ce sera 0.

Exemple

15 = 00001111 (en binaire)
27 = 00011011 (En binaire)
Opération Bitwise OR de 15 et 27
00001111
|  00011011
________
00011111 = 31 (En décimal)

Programme Java

public class BitwiseOR {
public static void main(String[] args) {
int operand1 = 15, operand2 = 27, output = operand1 | operand2;
System.out.println(output);
}
}
Copier après la connexion

Sortie :

Manipulation de bits en Java

2. Bitwise ET

Il s'agit également d'un opérateur au niveau du bit, qui prend 2 opérandes et désigné par le symbole « & ». l'opérateur au niveau du bit compare les bits correspondants des deux opérandes. Si les deux bits de l’opérande sont 1, alors la sortie est 1 ; sinon, 0.

Exemple

15 = 00001111 (en binaire)
27 = 00011011 (En binaire)
Bitwise AND Opération de 15 et 27
00001111
|  00011011
________
00001011 = 11 (En décimal)

Programme Java

public class BitwiseAND {
public static void main(String[] args) {
int operand1 = 15, operand2 = 27, output = operand1 & operand2;
System.out.println(output);
}
}
Copier après la connexion

Sortie :

Manipulation de bits en Java

3. Complément au niveau du bit

Contrairement aux deux autres opérateurs dont nous avons parlé jusqu'à présent, celui-ci ne prend qu'un seul opérande et désigne le symbole « ~ ». Cet opérateur inverse le bit de l'opérande. Si le bit de l'opérande est 0, alors il le convertit en 1 et vice-versa.

Exemple

15 = 00001111 (en binaire)
Complément au niveau du bit Opération de 15
~00001111
________
11110000 = 240 (En décimal)

Programme Java

public class BitwiseComplement {
public static void main(String[] args) {
int operand= 15, output;
output= ~operand;
System.out.println(output);
}
}
Copier après la connexion

Sortie :

Manipulation de bits en Java

Remarque : Lorsque vous exécutez le programme Java, vous obtiendrez -16 en sortie au lieu de 240 car le compilateur affiche le complément à 2 de ce nombre, c'est-à-dire la notion négative du nombre binaire.
Le complément à 2 de n’importe quel nombre est équivalent à -(n+1), où n est le nombre dont le complément à 2 doit être calculé. Dans notre cas, le complément à 2 de l’opérande 15 est -16, ce qui correspond à la sortie du programme.

4. XOR au niveau du bit

Bitwise XOR est un opérateur binaire qui prend 2 opérandes et désigne par un symbole « ^ ». cet opérateur compare les bits correspondants des deux opérandes si les bits correspondants des deux opérandes sont différents qu'il donne 1 en sortie sinon 0.

L'opérateur Bitwise XOR est équivalent à (Bitwise OR + Bitwise Complement)

Exemple

15 = 00001111 (en binaire)
27 = 00011011 (En binaire)
Opération XOR au niveau du bit de 15 et 27
00001111
^ 00011011
________
00010100 = 20 (En décimal)

Programme Java

public class BitwiseXor {
public static void main(String[] args) {
int operand1= 15, operand2 = 27, output;
output = operand1 ^ operand2;
System.out.println(output);
}
}
Copier après la connexion

Sortie :

Manipulation de bits en Java

5. Maj gauche signé

L'opérateur de décalage au niveau du bit vers la gauche décale le modèle de bits vers la gauche d'un certain nombre de fois spécifié dans l'opérande. L'opérateur de décalage vers la gauche est désigné par le symbole « << ».

Exemple

123 (En binaire : 01111011)
123 ≪≪ 1 est évalué à 246 (En binaire : 011110110)
123 ≪≪ 2 est évalué à 492 (En binaire : 0111101100)
123 ≪≪ 3 est évalué à 984 (En binaire : 01111011000)

Programme Java

public class LeftShiftOperator {
public static void main(String[] args) {
int operand = 123;
System.out.println(operand << 1);
System.out.println(operand << 2);
System.out.println(operand << 3);
}
}
Copier après la connexion

sortie :

Manipulation de bits en Java

6. Signé Maj droite

L'opérateur de décalage à droite signé fonctionne exactement de la même manière que l'opérateur de décalage à gauche, juste en ajoutant que zéro bit est décalé vers la position d'ordre supérieur.

Exemple

123 (En binaire : 01111011)
123>> 1 est évalué à 61 (En binaire : 00111101)
123>> 2 est évalué à 30 (En binaire : 00011110)
123>> 3 est évalué à 15 (En binaire : 00001111)

Programme Java

public class RightShiftOperator {
public static void main(String[] args) {
int operand = 123;
System.out.println(operand >> 1);
System.out.println(operand >> 2);
System.out.println(operand >> 3);
}
}
</p>
<p><strong>Sortie :<br>
</strong></p>
<p><img  src="https://img.php.cn/upload/article/000/000/000/172500479158146.jpg" alt="Manipulation de bits en Java" ></p>
<h4>7. Décalage droit non signé</h4>
<p>L'opérateur de décalage vers la droite décale zéro vers la position la plus à gauche d'un certain nombre de bits spécifié dans l'opérande.</p>
<p><strong>Programme Java</strong></p>
<pre class="brush:php;toolbar:false">public class UnSignedRightShiftOperator {
public static void main(String[] args) {
int operand = 123;
System.out.println(operand >>> 1);
System.out.println(operand >>> 2);
System.out.println(operand >>> 3);
}
}
Copier après la connexion

Sortie :

Manipulation de bits en Java

Conclusion – Manipulation de bits en Java

Maintenant que nous sommes arrivés à la fin de l’article, terminons en résumant le point clé dont nous avons discuté dans cet article. Nous avons vu ce qu'est une petite manipulation et ses différents cas d'utilisation. Nous avons également appris les différents types d'opérateurs au niveau du bit (Bitwise AND, Bitwise OR, Bitwise Complement et Bitwise XOR) et les opérateurs de décalage de bits (opérateur de décalage à gauche signé, opérateur de décalage à droite signé et opérateurs de décalage à droite non signés) ainsi qu'un exemple et un échantillon. Programme Java expliquant les opérateurs individuels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal