Maison  >  Article  >  interface Web  >  Comment effectuer une négation au niveau du bit en javascript

Comment effectuer une négation au niveau du bit en javascript

青灯夜游
青灯夜游original
2021-12-07 12:11:493243parcourir

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.

Comment effectuer une négation au niveau du bit en javascript

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 effectuer une négation au niveau du bit en javascript

Comment calculer l'inversion au niveau du bit

  Étapes des règles de fonctionnement de l'inversion au niveau du bit :

  1. Convertir le décimal en code original

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

  2. Convertissez le code original en code inverse

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

3. Le code inverse Convertir en complément à deux

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

4. Inversez le complément pour obtenir le code original

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    

 5. Convertissez le code original en binaire

 十进制  ---->    原码    ---->   反码    ---->   补码     ---->  补码取反   ---->  取反补码转成反码  ---->  转成原码  ---->  转成二进制
    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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn