Python Tutorial

JavaScript au niveau du bit


Opérateurs bit à bit JavaScript

Opérateur Nom Description
& ET Met chaque bit à 1 si les deux bits sont à 1
| OU Définit chaque bit sur 1 si l’un des deux bits est 1
^ XOR Définit chaque bit sur 1 si un seul des deux bits est 1
~ PAS Inverse tous les bits
<< Décalage à gauche sans remplissage Se décale vers la gauche en poussant des zéros depuis la droite et laisse tomber les bits les plus à gauche
>> Décalage à droite signé Se décale vers la droite en poussant des copies du bit le plus à gauche depuis la gauche et en laissant tomber les bits les plus à droite
>>> Décalage à droite sans remplissage Se décale vers la droite en poussant des zéros depuis la gauche et laisse tomber les bits les plus à droite

Exemples

Opération Résultat Pareil que Résultat
5 & ​​1 1 0101 & 0001 0001
5 | 1 5 0101 | 0001 0101
~ 5 dix ~0101 1010
5 << 1 dix 0101 << 1 1010
5 ^ 1 4 0101 ^ 0001 0100
5 >> 1 2 0101 >> 1 0010
5 >>> 1 2 0101 >>> 1 0010

JavaScript utilise des opérandes au niveau du bit 32 bits

JavaScript stocke les nombres sous forme de nombres à virgule flottante 64 bits, mais toutes les opérations au niveau du bit sont effectuées sur des nombres binaires 32 bits.

Avant qu’une opération au niveau du bit ne soit effectuée, JavaScript convertit les nombres en entiers signés 32 bits.

Une fois l’opération au niveau du bit effectuée, le résultat est reconverti en nombres JavaScript 64 bits.

Les exemples ci-dessus utilisent des nombres binaires non signés de 4 bits. Pour cette raison ~ 5 renvoie 10.

Comme JavaScript utilise des entiers signés 32 bits, il ne renverra pas 10. Il renverra -6.

0000000000000000000000000000101 (5)

11111111111111111111111111010 (~5 = -6)

Un entier signé utilise le bit le plus à gauche comme signe moins.



ET au niveau du bit JavaScript

Lorsqu’un ET au niveau du bit est effectué sur une paire de bits, il renvoie 1 si les deux bits sont à 1.

Un petit exemple :

Opération Résultat
0 & 0 0
0 & 1 0
dix 0
1 & 1 1

Exemple 4 bits :

Opération Résultat
1111 & 0000 0000
1111 & 0001 0001
1111 & 0010 0010
1111 & 0100 0100

OR au niveau du bit JavaScript

Lorsqu’un OU au niveau du bit est effectué sur une paire de bits, il renvoie 1 si l’un des bits est 1 :

Un petit exemple :

Opération Résultat
0 | 0 0
0 | 1 1
1 | 0 1
1 | 1 1

Exemple 4 bits :

Opération Résultat
1111 | 0000 1111
1111 | 0001 1111
1111 | 0010 1111
1111 | 0100 1111

JavaScript Bitwise XOR

Lorsqu’un XOR au niveau du bit est effectué sur une paire de bits, il renvoie 1 si les bits sont différents :

Un petit exemple :

Opération Résultat
0 ^ 0 0
0 ^ 1 1
1 ^ 0 1
1 ^ 1 0

Exemple 4 bits :

Opération Résultat
1111 ^ 0000 1111
1111 ^ 0001 1110
1111 ^ 0010 1101
1111 ^ 0100 1011

AND au niveau du bit JavaScript (&)

Bitwise AND renvoie 1 uniquement si les deux bits sont 1 :

Décimal Binaire
5 0000000000000000000000000000101
1 0000000000000000000000000000001
5 & ​​1 0000000000000000000000000000001 (1)

OR au niveau du bit JavaScript (|)

Le OU au niveau du bit renvoie 1 si l’un des bits est 1 :

Décimal Binaire
5 0000000000000000000000000000101
1 0000000000000000000000000000001
5 | 1 0000000000000000000000000000101 (5)

JavaScript Bitwise XOR (^)

Bitwise XOR renvoie 1 si les bits sont différents :

Décimal Binaire
5 0000000000000000000000000000101
1 0000000000000000000000000000001
5 ^ 1 0000000000000000000000000000100 (4)

JavaScript au niveau du bit NON (~)

Décimal Binaire
5 0000000000000000000000000000101
~5 11111111111111111111111111010 (-6)

JavaScript (Remplissage zéro) Décalage gauche au niveau du bit (<<)

Il s’agit d’un décalage à gauche de remplissage nul. Un ou plusieurs bits zéro sont introduits à partir de la droite et les bits les plus à gauche tombent :

Décimal Binaire
5 0000000000000000000000000000101
5 << 1 0000000000000000000000000001010 (10)

JavaScript (préservation des signes) Décalage vers la droite au niveau du bit (>>)

C’est un signe préservant le décalage vers la droite. Les copies du bit le plus à gauche sont insérées à partir de la gauche et les bits les plus à droite tombent :

Décimal Binaire
-5 111111111111111111111111111011
-5 >> 1 11111111111111111111111111101 (-3)

JavaScript (Remplissage zéro) Décalage vers la droite (>>>)

Il s’agit d’un décalage vers la droite de remplissage nul. Un ou plusieurs bits zéro sont insérés à partir de la gauche et les bits les plus à droite tombent :

Décimal Binaire
5 0000000000000000000000000000101
5 >>> 1 0000000000000000000000000000010 (2)

Nombres binaires

Les nombres binaires avec un seul bit défini sont faciles à comprendre :

Représentation binaire Valeur décimale
0000000000000000000000000000001 1
0000000000000000000000000000010 2
0000000000000000000000000000100 4
0000000000000000000000000001000 8
0000000000000000000000000010000 16
0000000000000000000000000100000 32
0000000000000000000000001000000 64

Définir quelques bits supplémentaires révèle le modèle binaire :

Représentation binaire Valeur décimale
0000000000000000000000000000101 5 (4 + 1)
0000000000000000000000000001101 13 (8 + 4 + 1)
0000000000000000000000000101101 45 (32 + 8 + 4 + 1)

Les nombres binaires JavaScript sont stockés au format complément à deux.

Cela signifie qu’un nombre négatif est le NON au niveau du bit du nombre plus 1 :

Représentation binaire Valeur décimale
0000000000000000000000000000101 5
111111111111111111111111111011 -5
0000000000000000000000000000110 6
111111111111111111111111111010 -6
0000000000000000000000000101000 40
111111111111111111111111011000 -40

Conversion de décimal en binaire


Conversion binaire en décimal

Exemple

fonction bin2dec(bin){
retourner parseInt(bin, 2).toString(10);
}

Essayez-le vous-même »

#JavaScript #niveau #bit

Articles similaires

Voir Aussi
Fermer
Bouton retour en haut de la page