请考虑以下代码:
var combined:Number = Number(4294967296) | Number(2403025069);
var testLimit:Number = 6697992365;
trace("Combined is:", combined, "should be", testLimit);
输出是:
组合是:-1891942227应该是6697992365
为什么?我以为Number数据类型可以容纳64位整数(好吧 - 真的是52位,但上面的数字远远没有达到那个限制)
答案 0 :(得分:1)
|
按位OR运算符将expression1和expression2转换为32位无符号整数,并在每个位位置放置1,其中expression1或expression2的相应位为1。
...
结果被解释为32位二进制补码数,因此结果为整数,范围为-2147483648到2147483647。