Les opérateurs au niveau du bit sont pratiques à utiliser et peuvent entraîner un code extrêmement rapide. Découvrez ce qu'ils sont et comment les utiliser.

Les opérateurs au niveau du bit sont ceux qui agissent au niveau binaire. Ils sont souvent très rapides à exécuter et agissent généralement sur deux opérandes.

Vous pouvez utiliser des opérateurs au niveau du bit pour manipuler des nombres binaires, optimiser du code, compresser des données et implémenter des techniques de graphisme ou de programmation de jeux. Comme la plupart des autres langages de programmation, JavaScript offre un excellent support pour les opérations au niveau du bit.

Que sont les opérateurs?

La plupart des langages de programmation utilisent le concept d '«opérateur» - un symbole qui indique à l'interpréteur d'effectuer une opération mathématique, relationnelle ou logique spécifique.

Il y a beaucoup de différents types d'opérateur JavaScript vous devez être conscient, de ceux qui ressemblent à des opérateurs mathématiques standard, tels que "+", aux opérateurs qui comparent deux valeurs. Les opérateurs au niveau du bit sont un ensemble spécial qui traite des nombres binaires.

instagram viewer

Opérateur AND (&) au niveau du bit

Le ET au niveau du bit JavaScript (&) compare les bits correspondants de deux opérandes binaires - nombres contenant uniquement 0 et 1. Pour chaque paire de bits d'entrée, le bit de sortie correspondant est « 1 » si les deux bits d'entrée sont « 1 » ou « 0 » sinon.

Voici la syntaxe de l'opérateur AND au niveau du bit :

un B

Dans cet exemple, un et b sont les opérandes sur lesquels vous effectuez l'opération au niveau du bit.

Voici comment fonctionne l'opérateur AND au niveau du bit :

  1. L'opération ET s'applique à chaque paire de bits correspondants dans un et b de droite à gauche.
  2. Si les deux bits sont à 1, le résultat est 1. Si l'un des bits vaut 0, le résultat est 0.
  3. Le résultat est un nouveau nombre où chaque bit représente le résultat de l'opération ET sur les bits correspondants de un et b.

Par exemple:

laisser un = 50; // 00110010
laisser b = 100; // 01100100

laisser résultat = a & b; // 00100000

console.log (résultat); // 32

Dans l'exemple ci-dessus, un est 50 en décimal, équivalent au nombre binaire 00110010, et b est 100 en décimal, équivalent au nombre binaire 01100100. L'opérateur AND compare chaque paire de bits correspondants de droite à gauche et produit le nombre binaire résultant 00100000, qui est 32 en décimal.

Opérateur OR au niveau du bit (|)

Le OU au niveau du bit (|) compare les bits correspondants de deux opérandes et renvoie "1" si l'un ou les deux bits sont "1" et "0" si les deux bits sont "0".

Voici la syntaxe de l'opérateur OR au niveau du bit :

un | b

un et b sont les opérandes de l'opération.

L'opérateur OR (|) au niveau du bit fonctionne de la même manière que l'opérateur AND au niveau du bit. La seule différence est que l'opérateur OR renvoie "1" si "l'un" des bits est "1" et "0" si "les deux" bits sont "0".

Par exemple:

laisser un = 50; // 00110010
laisser b = 100; // 01100100

laisser résultat = un | b; // 01110110

console.log (résultat); // 118

Dans l'exemple ci-dessus, l'opérateur OU au niveau du bit compare chaque paire de bits de droite à gauche (c'est-à-dire, 0 | 0 = 0, 0 | 1 = 1, 1 | 1 = 1, et ainsi de suite). Le nombre binaire résultant est 01110110, soit 118 en décimal.

Opérateur XOR au niveau du bit (^)

Le bit à bit XOR (^) compare les bits correspondants de deux opérandes et renvoie "1" si l'un ou l'autre des opérandes est "1" et "0" si les deux opérandes sont "1" ou "0".

Voici la syntaxe de l'opérateur XOR au niveau du bit :

un ^ b

un et b sont les opérandes de l'opération.

L'opérateur XOR au niveau du bit fonctionne de la même manière que les opérateurs OU et ET au niveau du bit. La seule différence est qu'il renvoie "1" si "l'un ou l'autre mais pas les deux" des opérandes est "1" et "0" si "les deux" des opérandes sont "1" ou "0".

Par exemple:

laisser un = 50; // 00110010
laisser b = 100; // 01100100

laisser résultat = un ^ b; // 01010110

console.log (résultat); // 86

Dans l'exemple ci-dessus, l'opérateur XOR compare chaque paire de bits de droite à gauche (c'est-à-dire, 0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 1 = 0, et ainsi de suite). Le nombre binaire résultant est 01010110, soit 86 en décimal.

Opérateur NON (~) au niveau du bit

Le NON au niveau du bit (~) est un opérateur unaire qui opère sur un seul entier en inversant tous ses bits. En d'autres termes, il change chaque bit "0" en "1" et chaque bit "1" en "0".

Voici la syntaxe de l'opérateur NOT au niveau du bit :

~ c

c est l'opérande.

L'opérateur NOT au niveau du bit fonctionne en inversant tous les bits d'un opérande, y compris les bits de signe.

Par exemple:

laisser c = 10; // 00001010
laisser ré = -10; // 11110110

console.log(~c); // 11110101
console.log(~d); // 00001001

Dans l'exemple ci-dessus, l'opérateur NOT inverse tous les bits (c'est-à-dire, 01, 10, etc.), y compris les bits de signe.

Opérateur Maj gauche (<

L'opérateur de décalage à gauche décale les bits d'un nombre donné vers la gauche. L'opérateur prend deux opérandes: le nombre à décaler et le nombre de bits pour le décaler.

Voici la syntaxe de l'opérateur de décalage vers la gauche :

une << b

un est l'opérande de l'opérateur de décalage à gauche, et b est le nombre de bits dont l'opérateur décalera l'opérande.

L'opérateur de décalage à gauche fonctionne en décalant chaque bit d'un opérande vers la gauche du nombre de positions spécifié et en supprimant les bits en excès décalés vers la gauche.

Par exemple:

laisser un = 50; // 00110010
laisser b = 2;

laisser résultat = a << b; // 11001000

console.log (résultat); // 200

Dans l'exemple ci-dessus, l'opérateur de décalage à gauche a décalé la décimale 50 du binaire 00110010 de deux positions. La valeur binaire résultante est 11001000, soit 200 sous forme décimale.

Opérateur de décalage vers la droite (>>) à propagation de signes

Le décalage vers la droite qui propage les signes (>>) décale les bits d'un nombre vers la droite tout en préservant le signe du nombre d'origine. L'opérateur prend deux opérandes: le nombre à décaler et le nombre de bits pour le décaler.

Voici la syntaxe de l'opérateur de décalage vers la droite qui propage les signes :

une >> b

un est l'opérande de l'opérateur de décalage à droite, et b est le nombre de bits dont l'opérateur décalera l'opérande.

L'opérateur de décalage vers la droite qui propage les signes fonctionne de la même manière que l'opérateur de décalage vers la gauche; la seule différence dans le mode de fonctionnement est que le décalage à droite maintient le signe.

Par exemple:

laisser un = -50; // 11001110
laisser b = 2;

laisser résultat = a >> b; // 11110011

console.log (résultat); // -13

Dans l'exemple ci-dessus, l'opérateur de décalage vers la droite a décalé la décimale -50 (11001110) de deux espaces vers la droite, ce qui a donné la décimale -13 (11110011).

Opérateur Décalage à droite non signé (>>>)

Le décalage à droite non signé (>>>) décale les bits d'un nombre vers la droite d'un nombre spécifié de positions et remplit les espaces vides à gauche avec des zéros. L'opérateur rejette les bits en excès qu'il décale vers la droite.

Voici la syntaxe de l'opérateur de décalage à droite non signé :

une >>> b

un est l'opérande de l'opérateur de décalage à droite, et b est le nombre de bits dont l'opérateur décalera l'opérande.

L'opérateur de décalage à droite non signé fonctionne de la même manière que le décalage à droite. Cependant, contrairement à l'opérateur de décalage vers la droite (>>), il ne conserve pas le signe d'un nombre lors du décalage. Au lieu de cela, il traite le nombre comme un entier non signé et remplit le bit le plus à gauche avec un zéro.

Par exemple:

laisser un = -5; // 11111111 11111111 11111111 11111011
laisser b = 2;

laisser résultat = un >>> b; // 00111111 11111111 11111111 11111110

console.log (résultat); // 1073741822

Dans cet exemple, l'opérateur de décalage à droite non signé a décalé "-5" de deux espaces vers la droite, supprimant effectivement le signe et résultant en la décimale "1073741822".

Les applications des opérateurs binaires

En manipulant des bits individuels dans des nombres binaires, les opérateurs au niveau du bit peuvent créer des fonctionnalités complexes qui sont autrement difficiles ou impossibles à réaliser avec des opérations arithmétiques traditionnelles.

Comprendre comment utiliser les opérateurs au niveau du bit peut vous aider à créer des applications Web plus efficaces et plus performantes.