roo*_*kie 5 integer-division
我有一个128位数字存储为2个64位数字("Hi"和"Lo").我只需要将它除以32位数.我怎么能这样做,使用CPU的本机64位操作?
(请注意,我不需要任意精度库.只需要知道如何使用本机操作进行这种简单的划分.谢谢).
F.D*_*tel 3
如果您使用架构可以处理的最大可能的本机表示(64 位)来存储值(128 位),那么您将在处理除法的中间结果时遇到问题(正如您已经发现的:))。
但您始终可以使用更小的表示形式。那么四个 32 位数字呢?这样您就可以使用本机 64 位操作而不会出现溢出问题。
可以在这里找到一个简单的实现(在 Delphi 中)。
归档时间:
15 年,9 月 前
查看次数:
4647 次
最近记录: