Table des matières
Opérateurs Java Bitwise et Bitshift
Opérateurs de manipulation de bits en Java
1. OU au niveau du bit
2. Bitwise ET
3. Complément au niveau du bit
4. XOR au niveau du bit
5. Maj gauche signé
6. Signé Maj droite
7. Décalage droit non signé
Conclusion – Manipulation de bits en Java
Maison Java javaDidacticiel Manipulation de bits en Java

Manipulation de bits en Java

Aug 30, 2024 pm 03:59 PM
java

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 &amp; 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 &lt;&lt; 1);
System.out.println(operand &lt;&lt; 2);
System.out.println(operand &lt;&lt; 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 &gt;&gt; 1);
System.out.println(operand &gt;&gt; 2);
System.out.println(operand &gt;&gt; 3);
}
}
</p>
<p><strong>Sortie :<br>
</strong></p>
<p><img  src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/172500479158146.jpg" class="lazy" alt="Manipulation de bits en Java" ></p>
<h4 id="Décalage-droit-non-signé">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 &gt;&gt;&gt; 1);
System.out.println(operand &gt;&gt;&gt; 2);
System.out.println(operand &gt;&gt;&gt; 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!

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

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Racine carrée en Java

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Nombre parfait en Java

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Générateur de nombres aléatoires en Java

Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

Numéro Armstrong en Java

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Weka en Java

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Questions d'entretien chez Java Spring

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Break or Return of Java 8 Stream Forach?

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Numéro de Smith en Java

See all articles