按位非【~】
位运算 NOT 由否定号(~)表示,它是 ECMAScript 中为数不多的与二进制算术有关的运算符之一。
位运算 NOT 是三步的处理过程:
- 把运算数转换成 32 位数字
- 把二进制数转换成它的二进制反码
- 把二进制数转换成浮点数
例子
var num = ~25;console.log(num); //输出 -26
说明
25 = 0000 0000 0000 0000 0000 0000 0001 1001---------------------------------------------~ = 1111 1111 1111 1111 1111 1111 1110 0110
位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26。用下面的方法也可以得到同样的方法:
var num1 = 25;var num2 = -num1 - 1;console.log(num2); // 输出 -26
