为什么
((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.