当前位置:  开发笔记 > 编程语言 > 正文

在Actionscript 3中整数乘法mod2³²

如何解决《在Actionscript3中整数乘法mod2³²》经验,为你挑选了0个好方法。

有没有人遇到过关于int和uint算术如何在Actionscript 3中运行的权威规范?("权威"是指"来自Adobe"或"已被Adobe宣布为权威").特别是我正在寻找一种支持的方法来做整数乘法模2 32.我无法找到的任何Adobe文档都没有涵盖这一点.

Actionscript声称基于ECMAScript,但ECMAScript根本不进行整数运算.它在IEEE-754双打上完成所有操作,并按位运算之前减少模数2 32,在大多数情况下模拟整数运算.但是,这对于乘法不起作用:乘法的真实结果,例如,0x10000001*0x0FFFFFFF对于双尾数的尾数来说太长,因此如果遵循规范,则低位将丢失.

现在输入Actionscript.我已经通过实验发现,将两个int或多个uint变量相乘并立即将产品投入intuint总是给我确切的结果.但是,生成的AVM2字节码只包含一个普通的"mul"指令,没有直接指示它应该产生整数结果而不是浮点结果; 虚拟机必须向前看以找到它.我担心我在实验中幸运,并获得额外的精确度作为奖励,而不是我可以依赖的东西.

(首先,我的实验都是使用x86 Flash播放器进行的.也许它代表中间结果,因为Intel 80位加倍,或者在评估堆栈上存储64位int,直到知道它将用于什么.在没有原生32×32→64乘法指令的非x86平板电脑上很容易实现,那么VM是否可以决定将精度降低到ECMAScript标准指定的范围?)

24小时状态:迈克威尔士做了一些有能力的调查并提供了非常有用的链接,但遗憾的是还不足以解决这个问题.还有谁?

(tl;博士在评论中辩论:whitequark在某种程度上反驳了我的假设理由之一,为什么答案可能是"不".他的观点有其优点,但当然不能表明答案是"是" ).

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有