本文介绍了在数二进制数学对象仅限于32位?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑以下code:

var combined:Number = Number(4294967296) | Number(2403025069);
var testLimit:Number = 6697992365;
trace("Combined is:", combined, "should be", testLimit);

输出是:

组合是:-1891942227应该是6697992365

为什么?我以为号码数据类型可以容纳64位整数(okay-真正52位的,但上面的数字是隔靴搔痒的限制)

Why?! I thought Number datatypes can hold 64 bit integers (okay- really 52-bit, but the numbers above are nowhere near that limit)

推荐答案

从的:

| 位或运算符

转换EX pression1和EX pression2为32位无符号整数的,并且在每个位的位置放置一个1,其中的任前pression1或前的对应位pression2为1。

Converts expression1 and expression2 to 32-bit unsigned integers, and places a 1 in each bit position where the corresponding bits of either expression1 or expression2 are 1.

...

结果是PTED为32位二进制补码数间$ P $,所以的的结果是一个整数的范围为-2147483648到2147483647。

The result is interpreted as a 32-bit two's complement number, so the result is an integer in the range -2147483648 to 2147483647.

这篇关于在数二进制数学对象仅限于32位?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-31 04:16