首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActionScript/Flex: 32位上的逐位与/或

ActionScript/Flex: 32位上的逐位与/或
EN

Stack Overflow用户
提问于 2008-11-04 01:05:16
回答 5查看 2.1K关注 0票数 4

问:在ActionScript中,有没有一种简单的方法(库函数)来对大于32位的数字执行逐位AND或or?

文档中写道:“按位运算符在内部操作浮点数,将其转换为32位整数。执行的确切操作取决于运算符,但所有按位运算分别计算32位整数的每个二进制位(位),以计算新值。”

失败者。

我不能使用&或| ops - AS公开一个库函数来为数字做这件事?

细节:我正在把一堆java移植到flex上,java维护着一堆‘长’掩码。我知道我可以在flex端将Java掩码拆分为两个int。由于我所有的面罩操纵器都是本地化的,这不会太痛苦。但是,我希望尽可能地保持端口为1-1。

有什么建议吗?谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-11-06 02:35:47

我认为您最直接的选择是将掩码分成两部分,如果可能的话,还要将被掩码的数据分成两部分。你遇到了一个特性上的差距,所以如果你能帮上忙,那就没必要这么麻烦了。如果你不需要真正的BigNum支持,最好不要考虑它。

票数 1
EN

Stack Overflow用户

发布于 2008-11-05 14:31:21

如果你不介意移植一些Javascript,Leemon Baird在这里写了一个公共领域的Javascript库来处理大整数:

http://www.leemon.com/crypto/BigInt.html

您不能显式地使用&和|运算符,但是您应该能够使用bitwiseAnd和bitwiseOr方法来扩充现有代码。

票数 1
EN

Stack Overflow用户

发布于 2009-12-10 17:01:27

`

代码语言:javascript
复制
public class NumberUtils
{
  public static const MSB_CONV : Number = Math.pow(2, 32);

  public static function bitwiseAND(num1 : Number, num2 : Number) : Number {
    var msb1 : int = num1 / MSB_CONV;
    var msb2 : int = num2 / MSB_CONV;

    return (msb1 & msb2) * MSB_CONV + (num1 & num2);
  }
..OR..shiftRight..
}

`

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/260504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档