以下是为什么 ~5
等于 -6
来自here的解释:
5 = 0000 0101翻转(~5)= 1111 1010那么,1111 1010代表哪个数字?由于第一个数字是1,我们知道它是负值 . 要找到哪个值,请执行 - (flip(1111 1010)1)= - (0000 0101 1) - (0000 0110)= -6
我想知道为什么Javascript将 ~5
的结果视为二进制补码形式的数字?
我的困惑源于这样一个事实:如果我在控制台中编写 0b11111010
,它的评估值为250,而不是-6
1 回答
因为这就是Javascript如何表示二进制中的负数 . Docs: