按位非【~】

位运算 NOT 由否定号(~)表示,它是 ECMAScript 中为数不多的与二进制算术有关的运算符之一。
位运算 NOT 是三步的处理过程:

  1. 把运算数转换成 32 位数字
  2. 把二进制数转换成它的二进制反码
  3. 把二进制数转换成浮点数

例子

  1. var num = ~25;
  2. console.log(num); //输出 -26

说明

  1. 25 = 0000 0000 0000 0000 0000 0000 0001 1001
  2. ---------------------------------------------
  3. ~ = 1111 1111 1111 1111 1111 1111 1110 0110

位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26。用下面的方法也可以得到同样的方法:

  1. var num1 = 25;
  2. var num2 = -num1 - 1;
  3. console.log(num2); // 输出 -26