ShuXueZhenMiHu 发表于 2020-11-27 20:16:19

请教一个问题 加法的两种实现方式

如果我想实现一个加法,有两种方式,
一是,我是在加操作之前,判断是否可能会出现溢出,然后进行预先的操作。
二是,我直接进行加操作,如果出现溢出错误,我在错误处理里针对这种情况进行操作。

问题是,哪一种方式快一些呢?毕竟这种基础操作会大量的使用,一点点的快都有很大的影响。

.·.·. 发表于 2020-11-30 21:33:29

汇编可以add然后adc,据我所知是最快的算法(至少,如果你需要用64bit模拟128bit的加法,这是最快的)
别的我就不知道了

liangbch 发表于 2020-12-14 09:31:11

看你用什么进制了,如进制为$2^{32}$,使用32位的adc指令。如进制为$2^{64}$,使用64位的adc指令。如进制小于$2^{32}$或者$2^{64}$,则不会溢出,但需要求做归约处理,求进位和本位。

无心人 发表于 2020-12-16 20:37:49

Intel的处理器最新指令为多精度运算做了优化,可以并发执行多个不依赖CF进位的进位加法了

灵树 发表于 2021-1-4 11:28:05

不管用什么代码来写都是用第二种方法最好,先判断溢出基本就是重复做了两遍加。
页: [1]
查看完整版本: 请教一个问题 加法的两种实现方式