sam*_*one 2 javascript bit-manipulation
在Javascript中,当我这样做
var num = 1;
~ num == -2
Run Code Online (Sandbox Code Playgroud)
为什么~num不等于0
在二进制1中存储为1 ...因此不应该为1
或者它像0001一样存储,因此不是0001将是1110
我想我错过了一些东西......有人可以清楚这一点
查找已签名二进制数的二进制补码
让我们假设一个javascript数字是8位宽(它不是):
然后
1 = 0000 0001b
Run Code Online (Sandbox Code Playgroud)
和
~1 = 1111 1110b
Run Code Online (Sandbox Code Playgroud)
哪个是二进制表示 -2
0000 0010b = 2
0000 0001b = 1
0000 0000b = 0
1111 1111b = -1
1111 1110b = -2
Run Code Online (Sandbox Code Playgroud)