0

今天我试图找到一种有趣而神秘的方法来确定 JavaScript 的最大整数值。其中一种方法如下:

~(+!!![]) >>> (+!![]);

实际上评估为

~0 >>> 1

但它应该返回 2147483647 而不是 4294967295 。为什么?当然,后者将是无符号整数的此操作的结果,而我的结果对于有符号整数是正确的。但是如何强制呢?...

4

1 回答 1

2

您正在找到最大整数,然后将其向右移动 1 位,将其除以 2。使用:

~0 >>> 0

得到最大整数。

将其转换为“有趣”的方式,我将作为练习留给读者。

于 2013-11-14T07:07:52.400 回答