问:在ActionScript中,有没有一种简单的方法(库函数)来对大于32位的数字执行逐位AND或or?
文档中写道:“按位运算符在内部操作浮点数,将其转换为32位整数。执行的确切操作取决于运算符,但所有按位运算分别计算32位整数的每个二进制位(位),以计算新值。”
失败者。
我不能使用&或| ops - AS公开一个库函数来为数字做这件事?
细节:我正在把一堆java移植到flex上,java维护着一堆‘长’掩码。我知道我可以在flex端将Java掩码拆分为两个int。由于我所有的面罩操纵器都是本地化的,这不会太痛苦。但是,我希望尽可能地保持端口为1-1。
有什么建议吗?谢谢!
发布于 2008-11-06 02:35:47
我认为您最直接的选择是将掩码分成两部分,如果可能的话,还要将被掩码的数据分成两部分。你遇到了一个特性上的差距,所以如果你能帮上忙,那就没必要这么麻烦了。如果你不需要真正的BigNum支持,最好不要考虑它。
发布于 2008-11-05 14:31:21
如果你不介意移植一些Javascript,Leemon Baird在这里写了一个公共领域的Javascript库来处理大整数:
http://www.leemon.com/crypto/BigInt.html
您不能显式地使用&和|运算符,但是您应该能够使用bitwiseAnd和bitwiseOr方法来扩充现有代码。
发布于 2009-12-10 17:01:27
`
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..
}`
https://stackoverflow.com/questions/260504
复制相似问题