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.
Voici les opérateurs :
Operator | Description |
& | Bitwise AND |
| | Bitwise OR |
~ | Bitwise Complement |
<< | Left Shift |
>> | Right Shift |
^ | Bitwise XOR |
>>> | Unsigned Right Shift |
Regardons les opérateurs plus en détail.
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); } }
Sortie :
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); } }
Sortie :
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); } }
Sortie :
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); } }
Sortie :
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); } }
sortie :
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); } }
Sortie :
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!