【发布时间】:2016-05-03 00:12:13
【问题描述】:
这里解释了为什么~5等于-6 from here:
5 = 0000 0101
翻转 (~5) = 1111 1010
那么,哪个 1111 1010 代表的数字是多少?由于第一个数字是 1 我们知道 这是一个负值。要找到哪个值,请执行
-(翻转(1111 1010) + 1) = -(0000 0101 + 1) -(0000 0110)= -6
我想知道为什么 Javascript 将 ~5 的结果视为二进制补码形式的数字?
我的困惑源于这样一个事实,即如果我在控制台中写入 0b11111010,它的计算结果为 250,而不是 -6
【问题讨论】:
-
您的问题简化为“为什么整数在 Javascript 中签名?”。
-
我的困惑源于这样一个事实:如果我在控制台中写
0b11111010,它的计算结果是250,而不是-6 -
那是因为整数不是 8 位的。
-
你能详细说明一下吗?
-
5是一个整数,正如 Oliver 指出的那样,不是 8 位。另一方面,0b11111010是一个 8 位二进制文件。
标签: javascript binary