Java >> Tutoriel Java >  >> Java

Opérateurs bit à bit Java

Opérateurs au niveau du bit sont habitués à manipuler les bits d'un nombre. Nous pouvons utiliser des opérateurs au niveau du bit avec n'importe quel type de données intégral comme byte , court , entier , longue .

Types d'opérateurs au niveau du bit

Les types d'opérateurs binaires suivants sont utilisés en Java,

  1. ET au niveau du bit (&)
  2. OU au niveau du bit (|)
  3. XOR bit à bit (^)
  4. Complément binaire (~)
  5. Décalage bit à gauche (<<)
  6. Décalage binaire vers la droite (>>)
  7. Opérateur de décalage vers la droite non signé au niveau du bit (>>>)
Opérateur Symbole Exemple
ET au niveau du bit & Opérande1 &Opérande2
OU au niveau du bit | Opérande1 | Opérande2
XOR au niveau du bit ^ Opérande1 ^ Opérande2
Complément au niveau du bit ~ ~Opérande1
Décalage bit à gauche < Opérande1 <
Décalage bit à droite >> Opérande1>> Opérande2
Opérateur de décalage vers la droite non signé au niveau du bit >>> Opérande1>>> Opérande2

1) Opérateur AND au niveau du bit (&)

Il s'agit d'un opérateur binaire, qui est désigné par le symbole '&'. Il effectue une opération ET bit par bit sur un nombre donné, si les deux bits sont 1, alors la sortie sera 1, sinon ce sera 0.

Opérande1 Opérande2 Opérande1 &Opérande2
1 1 1
1 0 0
0 1 0
0 0 0

Exemple :

public class Main {
  public static void main(String[] args) {

    int num1 = 5; // 0101
    int num2 = 7; // 0111

    int res = 0;

    res = num1 & num2;

    /*
        0101
        0111
        ====
        0101  That is 5
    */

    System.out.println("Result: " + res);
  }
}

Sortie :

Result: 5

2) Opérateur OU au niveau du bit (|)

Il s'agit d'un opérateur binaire, qui est désigné par le symbole '|'. Il effectue une opération OU bit par bit sur un nombre donné, si un bit est 1, alors la sortie sera 1, sinon ce sera 0.

Opérande1 Opérande2 Opérande1 | Opérande2
1 1 1
1 0 1
0 1 1
0 0 0

Exemple :

public class Main {
  public static void main(String[] args) {

    int num1 = 5; // 0101
    int num2 = 7; // 0111

    int res = 0;

    res = num1 | num2;

    /*
        0101
        0111
        ====
        0111  That is 7
    */

    System.out.println("Result: " + res);
  }
}

Sortie :

Result: 7

3) Opérateur XOR au niveau du bit (^)

Il s'agit d'un opérateur binaire, qui est désigné par le symbole '^'. Il effectue une opération XOR bit par bit sur un nombre donné, si les deux bits sont différents, alors la sortie sera 1, sinon ce sera 0.

Opérande1 Opérande2 Opérande1 | Opérande2
1 1 0
1 0 1
0 1 0
0 0 0

Exemple :

public class Main {
  public static void main(String[] args) {

    int num1 = 5; // 0101
    int num2 = 7; // 0111

    int res = 0;

    res = num1 ^ num2;

    /*
        0101
        0111
        ====
        0010  That is 2
    */

    System.out.println("Result: " + res);
  }
}

Sortie :

Result: 2

4) Opérateur de complément au niveau du bit (~)

Il s'agit d'un opérateur unaire, qui est désigné par le symbole '~'. Il effectue bit à bit l'opération de complément à 1 sur un nombre donné. Il a inversé les bits.

Opérande ~Opérande
1 0
0 1

5) Opérateur de décalage vers la gauche au niveau du bit (<<)

C'est un opérateur binaire, qui décale le nombre de bits vers la gauche dans un nombre donné. L'opérateur de décalage à gauche multiplie le nombre de bits spécifiés de puissance 2 par le nombre donné.

Exemple :

public class Main {
  public static void main(String[] args) {

    byte num = -5;
    byte res = 0;

    res = (byte)(num << 3);

    /*
        res = -5 * (2*2*2)
        res = -40
    */

    System.out.println("Result: " + res);
  }
}

Sortie :

Result: -40

6) Opérateur de décalage vers la droite au niveau du bit (>>)

C'est un opérateur binaire, qui décale le nombre de bits vers la droite dans un nombre donné. L'opérateur de décalage à droite divise le nombre de bits spécifiés de puissance 2 par le nombre donné.

Exemple :

public class Main {
  public static void main(String[] args) {

    byte num = -64;
    byte res = 0;

    res = (byte)(num >> 3);

    /*
        res = -64 / (2*2*2)
        res = -8
    */

    System.out.println("Result: " + res);
  }
}

Sortie :

Result: -8

7) Opérateur de décalage vers la droite non signé au niveau du bit (>>>)

C'est un opérateur binaire, qui décale le nombre de bits vers la droite dans un nombre donné. L'opérateur de décalage à droite non signé divise le nombre non signé de bits spécifiés de puissance 2 par le nombre donné.

Exemple :

public class Main {
  public static void main(String[] args) {

    byte num = 64;
    byte res = 0;

    res = (byte)(num >>> 3);

    /*
        res = 64 / (2*2*2)
        res = 8
    */

    System.out.println("Result: " + res);
  }
}

Sortie :

Result: 8

Balise Java