Maison > Article > interface Web > Comment effectuer une négation au niveau du bit en javascript
En JavaScript, vous pouvez utiliser l'opérateur "~" pour implémenter la négation au niveau du bit, avec la syntaxe "~ opérande" ; l'opérateur "~" peut convertir l'opérande spécifié en une forme entière binaire et exécuter l'opérande binaire un par un. Les bits sont inversés.
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
En JavaScript, vous pouvez utiliser l'opérateur "~" pour implémenter la négation au niveau du bit. Par exemple, ~1 = -2, ~-3=2, ~true=-2, ~false=-1
L'opérateur "~" peut visualiser la représentation binaire de la valeur spécifiée et prendre l'opérande binaire petit à petit. Opération inverse
Étape 1 : Convertissez l'opérande en un entier binaire de 32 bits.
Étape 2 : Effectuez l'opération d'inversion petit à petit.
Étape 3 : Convertissez le complément à un binaire en nombre décimal à virgule flottante.
Effectuez une opération NOT au niveau du bit sur 12 et la valeur de retour est -13.
console.log( ~ 12 ); //返回值-13
La figure ci-dessous analyse le processus d'exécution d'une opération NOT au niveau du bit sur 12 sous la forme d'une formule arithmétique.
Comment calculer l'inversion au niveau du bit
Étapes des règles de fonctionnement de l'inversion au niveau du bit :
Convertir en code binaire original, le bit le plus élevé est le bit de signe, 0 est un nombre positif, 1 est un nombre négatif
十进制 ----> 原码 1 ----> 00000001 -1 ----> 10000001
Le code inverse d'un nombre positif est le code original, le code inverse d'un nombre négatif est que le bit de signe reste inchangé , et les bits restants sont inversés
十进制 ----> 原码 ----> 反码 1 ----> 00000001 ----> 00000001 -1 ----> 10000001 ----> 11111110
Le complément d'un nombre positif est toujours le code d'origine, le complément d'un nombre négatif consiste à ajouter 1 au complément du complément
十进制 ----> 原码 ----> 反码 ----> 补码 1 ----> 00000001 ----> 00000001 ----> 00000001 -1 ----> 10000001 ----> 11111110 ----> 11111111
Entier positif Inversez le complément Après cela, la position du symbole est 1, qui est un entier négatif, nous calculons donc le complément d'un entier négatif Opération inverse pour obtenir le code original
Opération inverse pour obtenir le code original, convertir d'abord le complément inversé en code inverse, formule : son code complément = son complément - 1, puis convertir le code complément à un en code original, le signe Le bit reste inchangé et les autres bits sont inversés
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反 ----> 取反补码转成反码 ----> 转成原码 1 ----> 00000001 ----> 0000001 ----> 00000001 ----> 11111110 ----> 11111101 ----> 10000010
Une fois le complément d'un entier négatif inversé, la position du signe est 0, qui est un entier positif, car il est positif Le complément et le complément de l'entier sont eux-mêmes, donc il n'est pas nécessaire d'effectuer l'opération inverse
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反得原码 -1 ----> 10000001 ----> 11111110 ----> 11111111 ----> 00000000
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反 ----> 取反补码转成反码 ----> 转成原码 ----> 转成二进制 1 ----> 00000001 ----> 0000001 ----> 00000001 ----> 11111110 ----> 11111101 ----> 10000010 ----> -2
十进制 ----> 原码 ----> 反码 ----> 补码 ----> 补码取反得原码 ----> 转成二进制 -1 ----> 10000001 ----> 11111110 ----> 11111111 ----> 00000000 ----> 0
Donc, ~1=-2, ~-1=0
Inversion La fonction de négation~~
Opérateur ~ signifie négation au niveau du bit. En apparence, ~~ (inverser puis nier) n'a aucun sens. En fait, en JS, vous pouvez inverser des nombres à virgule flottante.
console.log(~~1.11); //1 console.log(~~-25.11); //-25【Recommandations associées :
Tutoriel d'apprentissage Javascript】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!