logo

Opérateur au niveau du bit en Java

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.

Opérateur au niveau du bit en Java

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 &amp; 1000 = 1000 = 8 System.out.println(&apos;x &amp; y = &apos; + (x &amp; y)); } } 

Sortir

 x &amp; 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.

Opérateur au niveau du bit en Java

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(&apos;x ^ y = &apos; + (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.

Opérateur au niveau du bit en Java

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 = &apos; + (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
Opérateur au niveau du bit en Java

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(&apos;~x = &apos; + (~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 &lt;&gt; number of places to shift; 

Par exemple, si a=10

 a&gt;&gt;2; //shifts two bits a&gt;&gt;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 :

Opérateur au niveau du bit en Java

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(&apos;x&gt;&gt;2 = &apos; + (x &gt;&gt;2)); } } 

Sortir

 x&gt;&gt;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< Opérateur au niveau du bit en Java

Exemple 1 : Quel sera le résultat après avoir décalé a<<3. the value of a is 20.< strong>

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

Hiba Boukhari

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>

La représentation de -10 en binaire est = 11110110

un<<2 11011000='<strong' =>-40

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

 public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println(&apos;x&lt;<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x&lt;<1 24 = < pre> <h3>Unsigned Right Shift Operator (&gt;&gt;&gt;)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>&gt;&gt;&gt;.</strong> Note that the leftmost position after &gt;&gt; depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a&gt;&gt;&gt;b?</strong> </p> <p>a &gt;&gt;&gt; b = 11110000 &gt;&gt;&gt; 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&apos;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(&apos;x&gt;&gt;&gt;2 = &apos; + (x &gt;&gt;&gt;2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x&gt;&gt;&gt;2 = 5 </pre> <hr></1></pre></1>

Sortir

 x&gt;&gt;&gt;2 = 5