我知道bitwise
运算符是按位非,意味着 1 变为 0,0 变为 1
但我的问题与以下有关:
var c = 5.87656778;
alert(~c);
警报 -6
var c = 5.87656778;
alert(~~c);
警报 5
有人可以对此有所了解吗?
我知道bitwise
运算符是按位非,意味着 1 变为 0,0 变为 1
但我的问题与以下有关:
var c = 5.87656778;
alert(~c);
警报 -6
var c = 5.87656778;
alert(~~c);
警报 5
有人可以对此有所了解吗?
基本上,它通过截断小数部分将数字转换为整数,并对该整数表示执行通常的按位运算。
MDN 对此有一些非常好的文档。
5 in binary is = 00000000000000000000000000000101 = 5
--------------------------------
~5 in binary is = 11111111111111111111111111111010 = -6
它们都适用于 32 位有符号整数。除了零填充右移,>>>
它适用于 32 位无符号整数。
因此,任何浮点数都通过截断转换为整数。