32位无符号JavaScript按位运算是一个简短的操作

时间:2011-09-12 20:24:15

标签: javascript bit-manipulation bitwise-operators

为什么

((255<<24)|(255<<16)|(255<<8)|255)>>>0

等于4294967295

Math.pow(256,4)

等于4294967296?

请注意,按位运算只有一个。这是为什么?!

2 个答案:

答案 0 :(得分:13)

因为零占用二进制值。

4294967296是32位给出的“槽”数,4294967295是占用最高槽位的十进制数。

答案 1 :(得分:8)

因为第一个是2 ^ 32-1,第二个是2 ^ 32?你知道,使用第一个“语句”,你将值设置为1的前32位,对吗?

在32位中,第一位是“值”1,第二位是2,第三位是4 ......第32位2147483648.它们的总和是4294967295: - )

让我们以8位为例。

Math.pow(256,1) == 256

1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255.