JavaScript ~~ Opérateur


Exemple

Double Tilde ~~ effectuera deux fois l'opération NON bit à bit.

L'exemple suivant illustre l'utilisation de l'opérateur NOT (~~) bit à bit sur les nombres décimaux.

Pour garder l'exemple simple, le nombre décimal 3.5 sera utilisé, en raison de sa représentation simple au format binaire.

let number = 3.5;
let complement = ~number;

Le résultat du nombre de complement est égal à -4;

Expression Valeur binaire Valeur décimale
3 00000000 00000000 00000000 00000011 3
~~ 3 00000000 00000000 00000000 00000011 3
3.5 00000000 00000011.1 3.5
~~ 3.5 00000000 00000011 3

Pour simplifier cela, nous pouvons le considérer comme des fonctions f2(n) = -(-(n+1) + 1) et g2(n) = -(-(integer(n)+1) + 1) .

f2 (n) laissera le nombre entier tel quel.

let a = ~~-2; // a is now -2
let b = ~~-1; // b is now -1
let c = ~~0;  // c is now 0
let d = ~~1;  // d is now 1
let e = ~~2;  // e is now 2

g2 (n) arrondira essentiellement les nombres positifs vers le bas et les nombres négatifs vers le haut.

let a = ~~-2.5; // a is now -2
let b = ~~-1.5; // b is now -1
let c = ~~0.5;  // c is now 0
let d = ~~1.5;  // d is now 1
let e = ~~2.5;  // e is now 2