Les opérateurs constituent la pierre angulaire de tout langage de programmation. Java propose également de nombreux types d'opérateurs qui peuvent être utilisés en fonction des besoins pour effectuer divers calculs et fonctions, qu'ils soient logiques, arithmétiques, relationnels, etc. Ils sont classés en fonction des fonctionnalités qu'ils fournissent. Voici quelques types :
- Opérateurs arithmétiques
- Opérateurs unaires
- Opérateur d'assignation
- Opérateurs relationnels
- Opérateurs logiques
- Opérateur ternaire
- Opérateurs au niveau du bit
- Opérateurs de quarts
Cet article explique tout ce qu'il faut savoir concernant les opérateurs bit à bit.
Opérateurs au niveau du bit
Les opérateurs au niveau du bit sont utilisés pour effectuer la manipulation de bits individuels d'un nombre. Ils peuvent être utilisés avec n'importe quel type intégral (char, short, int, etc.). Ils sont utilisés lors de l'exécution d'opérations de mise à jour et de requête des arbres indexés binaires.
Examinons maintenant chacun des opérateurs au niveau du bit en Java :
1. OU au niveau du bit (|)
Cet opérateur est un opérateur binaire, noté « | ». Il renvoie bit par bit OU des valeurs d'entrée, c'est-à-dire que si l'un des bits est 1, il donne 1, sinon il affiche 0.
Exemple:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise OR Operation of 5 and 7 0101 | 0111 ________ 0111 = 7 (In decimal)>
2. ET au niveau du bit (&)
Cet opérateur est un opérateur binaire, noté « & ». Il renvoie bit par bit ET des valeurs d'entrée, c'est-à-dire que si les deux bits sont 1, il donne 1, sinon il affiche 0.
Exemple:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise AND Operation of 5 and 7 0101 & 0111 ________ 0101 = 5 (In decimal)>
3. XOR au niveau du bit (^)
Cet opérateur est un opérateur binaire, noté « ^ ». Il renvoie bit par bit XOR des valeurs d'entrée, c'est-à-dire que si les bits correspondants sont différents, il donne 1, sinon il affiche 0.
liste des tableaux
Exemple:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise XOR Operation of 5 and 7 0101 ^ 0111 ________ 0010 = 2 (In decimal)>
4. Complément au niveau du bit (~)
Cet opérateur est un opérateur unaire, noté « ~ ». Il renvoie la représentation complémentaire à un de la valeur d'entrée, c'est-à-dire avec tous les bits inversés, ce qui signifie qu'il fait de 0 à 1 et de 1 à 0.
Exemple:
a = 5 = 0101 (In Binary) Bitwise Complement Operation of 5 ~ 0101 ________ 1010 = 10 (In decimal)>
JavaNote: Le compilateur donnera le complément à 2 de ce nombre, c'est-à-dire que le complément à 2 de 10 sera -6.
// Java program to illustrate // bitwise operators public class operators { public static void main(String[] args) b)); // bitwise xor // 0101 ^ 0111=0010 = 2 System.out.println('a^b = ' + (a ^ b)); // bitwise not // ~00000000 00000000 00000000 00000101=11111111 11111111 11111111 11111010 // will give 2's complement (32 bit) of 5 = -6 System.out.println('~a = ' + ~a); // can also be combined with // assignment operator to provide shorthand // assignment // a=a&b a &= b; System.out.println('a= ' + a); }> Sortir
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>
Espace auxiliaire : O(1)
Complexité temporelle : O(1)
Java // Demonstrating the bitwise logical operators class GFG { public static void main (String[] args) { String binary[]={ '0000','0001','0010','0011','0100','0101', '0110','0111','1000','1001','1010', '1011','1100','1101','1110','1111' }; // initializing the values of a and b int a=3; // 0+2+1 or 0011 in binary int b=6; // 4+2+0 or 0110 in binary // bitwise or int c= a | b; // bitwise and int d= a & b; // bitwise xor int e= a ^ b; // bitwise not int f= (~a & b)|(a &~b); int g= ~a & 0x0f; System.out.println(' a= '+binary[a]); System.out.println(' b= '+binary[b]); System.out.println(' a|b= '+binary[c]); System.out.println(' a&b= '+binary[d]); System.out.println(' a^b= '+binary[e]); System.out.println('~a & b|a&~b= '+binary[f]); System.out.println('~a= '+binary[g]); } }> Sortir
a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>
Opérateurs de décalage de bits (opérateurs de décalage)
Les opérateurs de décalage sont utilisés pour décaler les bits d'un nombre vers la gauche ou la droite, multipliant ou divisant ainsi le nombre par deux, respectivement. Ils peuvent être utilisés lorsque nous devons multiplier ou diviser un nombre par deux.
Syntaxe:
number shift_op number_of_places_to_shift;>
Types d’opérateurs de quart :
Les opérateurs de quart sont divisés en 4 types. Ceux-ci sont:
- Opérateur de décalage vers la droite signé (>>)
- Opérateur de décalage vers la droite non signé (>>>)
- Opérateur de décalage vers la gauche (<<)
- Opérateur de décalage vers la gauche non signé (<<<)
Note: Pour plus de détails sur les opérateurs Shift en Java, reportez-vous Opérateur de décalage en Java .
programme pour implémenter tous les opérateurs Bitwise en Java pour la saisie de l'utilisateur
Java import java.util.Scanner; public class BitwiseOperators { public static void main(String[] args) Scanner input = new Scanner(System.in); System.out.print('Enter first number: '); int num1 = input.nextInt(); System.out.print('Enter second number: '); int num2 = input.nextInt(); System.out.println('Bitwise AND: ' + (num1 & num2)); System.out.println('Bitwise OR: ' + (num1 }> Saisir
Enter first number: 4 Enter second number: 8>
Sortir
Bitwise AND: 0 Bitwise OR: 12 Bitwise XOR: 12 Bitwise NOT: -5 Bitwise Left Shift: 16 Bitwise Right Shift: 1 Bitwise Unsigned Right Shift: 1>
Explication
Ce programme invite l'utilisateur à saisir deux nombres, num1 et num2. Il effectue ensuite les opérations au niveau du bit suivantes à l'aide des opérateurs &, |, ^, ~, <> et>>> :
ET au niveau du bit
OU au niveau du bit
XOR au niveau du bit
PAS au niveau du bit
Décalage gauche au niveau du bit
Décalage vers la droite au niveau du bit
Remplissage zéro au niveau du bit, décalage vers la droite
Avantages
Les avantages de l’utilisation des opérateurs bit à bit en Java sont :
math.pow java
- Vitesse: Les opérations au niveau du bit sont beaucoup plus rapides que les opérations arithmétiques car elles opèrent directement sur les représentations binaires des nombres.
- Optimisation de l'espace : Les opérations au niveau du bit peuvent être utilisées pour stocker plusieurs valeurs dans une seule variable, ce qui peut être utile lorsque vous travaillez avec une mémoire limitée.
- Manipulation des bits : Les opérateurs au niveau du bit permettent un contrôle précis sur les bits individuels d'un nombre, ce qui peut être utile dans diverses applications telles que la cryptographie, la détection d'erreurs et la compression.
- Simplification des codes : Les opérations au niveau du bit peuvent simplifier le code en réduisant le nombre d'instructions conditionnelles et de boucles requises pour effectuer certaines tâches.
En résumé, les opérateurs bit à bit constituent un outil important pour optimiser les performances, améliorer la lisibilité du code et réduire la complexité du code dans les applications Java.