En Java, un opérateur est un symbole qui effectue les opérations spécifiées. Dans cette section, nous aborderons uniquement les opérateur au niveau du bit et ses types avec des exemples appropriés.
Types d'opérateurs au niveau du bit
Il existe six types d'opérateurs au niveau du bit en Java :
- ET au niveau du bit
- OU exclusif au niveau du bit
- OU inclusif au niveau du bit
- Compliment au niveau du bit
- Opérateurs de décalage de bits
Les opérateurs | Symbole | Les usages |
---|---|---|
ET au niveau du bit | & | op1 et op2 |
OU exclusif au niveau du bit | ^ | op1 ^ op2 |
OU inclusif au niveau du bit | | | op1 | op2 |
Compliment au niveau du bit | ~ | ~ ouais |
Décalage vers la gauche au niveau du bit | << | op1 << op2 |
Décalage à droite au niveau du bit | >> | op1 >> op2 |
Opérateur de décalage à droite non signé | >>> sur >>> | nombre de places à déplacer |
Expliquons l'opérateur au niveau du bit en détail.
ET au niveau du bit (&)
C'est un opérateur binaire désigné par le symbole & . Il renvoie 1 si et seulement si les deux bits sont 1, sinon renvoie 0.
Utilisons l'opérateur ET au niveau du bit dans un programme Java.
pointeur en c
BitwiseAndExample.java
public class BitwiseAndExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise and // 1001 & 1000 = 1000 = 8 System.out.println('x & y = ' + (x & y)); } }
Sortir
x & y = 8
OU exclusif au niveau du bit (^)
C'est un opérateur binaire désigné par le symbole ^ (prononcé comme un caret). Il renvoie 0 si les deux bits sont identiques, sinon renvoie 1.
Utilisons l'opérateur OR exclusif au niveau du bit dans un programme Java.
BitwiseXorExample.java
public class BitwiseXorExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise XOR // 1001 ^ 1000 = 0001 = 1 System.out.println('x ^ y = ' + (x ^ y)); } }
Sortir
x ^ y = 1
OU inclusif au niveau du bit (|)
C'est un opérateur binaire désigné par le symbole | (prononcé comme une pipe). Il renvoie 1 si l'un des bits est 1, sinon renvoie 0.
Utilisons l'opérateur OR inclusif au niveau du bit dans un programme Java.
BitwiseInclusiveOrExample.java
public class BitwiseInclusiveOrExample { public static void main(String[] args) y = ' + (x }
Sortir
x | y = 9
Complément au niveau du bit (~)
C'est un opérateur unaire désigné par le symbole ~ (prononcé comme le tilde). Il renvoie l'inverse ou le complément du bit. Cela fait que chaque 0 est un 1 et chaque 1 un 0.
loup contre renard
Utilisons l'opérateur de complément au niveau du bit dans un programme Java.
BitwiseComplimentExample.java
public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println('~x = ' + (~x)); } }
Sortir
~x = -3
Opérateurs de décalage de bits
L'opérateur Shift est utilisé pour décaler les bits vers la droite ou vers la gauche. Nous pouvons utiliser des opérateurs de décalage si nous divisons ou multiplions n'importe quel nombre par 2. Le format général pour décaler le bit est le suivant :
variable <> number of places to shift;
Par exemple, si a=10
a>>2; //shifts two bits a>>4; //shifts 4 bits
Java fournit les types d'opérateurs de décalage suivants :
- Opérateur de décalage à droite signé ou opérateur de décalage à droite au niveau du bit
- Opérateur de décalage à droite non signé
- Opérateur de décalage gauche signé ou opérateur de décalage gauche au niveau du bit
Remarque : Java ne prend pas en charge l'opérateur de décalage gauche non signé (<<<).< h4> Opérateur de décalage droit signé (>>)
L'opérateur de décalage vers la droite signé décale une configuration binaire d'un nombre vers le droite avec un nombre spécifié de positions et remplit 0. L'opérateur est désigné par le symbole >>. Il préserve également le bit le plus à gauche (bit de signe). Si 0 est présenté sur le bit le plus à gauche, cela signifie que le nombre est positif . Si 1 est présenté sur le bit le plus à gauche, cela signifie que le nombre est négatif .
En général, si on écrit a>>n, cela signifie décaler les bits d'un nombre vers la droite avec une position spécifiée (n). En termes mathématiques, nous pouvons représenter l’opérateur de décalage à droite signé comme suit :
Remarque : lorsque nous appliquons l'opérateur de décalage à droite sur un nombre positif, nous obtenons également le nombre positif dans le résultat. De même, lorsque nous appliquons l’opérateur de décalage vers la droite sur un nombre négatif, nous obtenons également le nombre négatif dans le résultat.
Exemple : appliquez l'opérateur de décalage à droite signé avec les positions spécifiées 4 si x = 256 et x = -256.
Si x = 256
256 >> 4
256/24= 16
Si x = -256
-256 >> 4
-256/24= -16
Dans l'exemple ci-dessus, nous avons observé qu'après décalage, l'opérateur 256 est converti en 16 et -256 est converti en -16.
modèle de conception singleton java
Créons un programme Java et implémentons l'opérateur de décalage gauche.
SignedRightShiftOperatorExample.java
public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println('x>>2 = ' + (x >>2)); } }
Sortir
x>>2 = 12
Opérateur de décalage gauche signé (<<)< strong> )<>
L'opérateur de décalage à gauche signé (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Il préserve également le bit le plus à gauche (bit de signe). Il ne conserve pas le bit de signe.)>
En général, si on écrit a< Exemple 1 : Quel sera le résultat après avoir décalé a<<3. the value of a is 20.< strong> 3.> La représentation de 20 en binaire est = 00010100 Après avoir effectué l'opérateur de décalage à gauche, nous obtenons : a << 3 = 10100000 (les trois derniers bits sont les bits remplis) un << 3 = 160 Vérifions le résultat en utilisant la formule. 20 << 3 20*23= 20*8 = 160 Exemple 2 : Quel sera le résultat après avoir décalé a<<2. the value of a is -10.< strong> 2.> La représentation de -10 en binaire est = 11110110 un<<2 11011000='<strong' =>-402> Vérifions le résultat en utilisant la formule. -10 << 3 -10*22= -10*4 = -40 Créons un programme Java et implémentons l'opérateur de décalage gauche signé. SignedLeftShiftOperatorExample.java Sortir Hiba Boukhari
public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println('x<<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x<<1 24 = < pre> <h3>Unsigned Right Shift Operator (>>>)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>>>>.</strong> Note that the leftmost position after >> depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a>>>b?</strong> </p> <p>a >>> b = 11110000 >>> 2 = <strong>00111100</strong> </p> <p>The left operand value is moved right by the number of bits specified by the right operand and the shifted bits are filled up with zeros. Excess bits shifted off to the right are discarded.</p> <p>Therefore, before shifting the bits the decimal value of a is 240, and after shifting the bits the decimal value of a is 60.</p> <p>Let's create a Java program and use the unsigned right shift operator.</p> <p> <strong>UnsignedRightShiftOperatorExample.java</strong> </p> <pre> public class UnsignedRightShiftOperatorExample { public static void main(String args[]) { int x = 20; System.out.println('x>>>2 = ' + (x >>>2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x>>>2 = 5 </pre> <hr></1></pre></1>
x>>>2 = 5
1>1>