32位无符号JavaScript按位操作很简单



为什么

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

= 4294967295

Math.pow(256,4)

= 4294967296 ?

注意,按位操作少了一个。这是为什么?!

因为0占用一个二进制值。

4294967296是32位给你的"槽位"数,4294967295是占据最高槽位的十进制数。

因为第一个是2^32-1,第二个是2^32?你知道在第一个"语句"中,你将值的前32位设置为1,对吧?

在32位中,第一个"值"为1,第二个为2,第三个为4…32号2147483648。它们的和是4294967295:-)

让我们举一个8位的例子。

Math.pow(256,1) == 256
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255.

最新更新