请教一个问题 加法的两种实现方式
如果我想实现一个加法,有两种方式,一是,我是在加操作之前,判断是否可能会出现溢出,然后进行预先的操作。
二是,我直接进行加操作,如果出现溢出错误,我在错误处理里针对这种情况进行操作。
问题是,哪一种方式快一些呢?毕竟这种基础操作会大量的使用,一点点的快都有很大的影响。 汇编可以add然后adc,据我所知是最快的算法(至少,如果你需要用64bit模拟128bit的加法,这是最快的)
别的我就不知道了 看你用什么进制了,如进制为$2^{32}$,使用32位的adc指令。如进制为$2^{64}$,使用64位的adc指令。如进制小于$2^{32}$或者$2^{64}$,则不会溢出,但需要求做归约处理,求进位和本位。 Intel的处理器最新指令为多精度运算做了优化,可以并发执行多个不依赖CF进位的进位加法了 不管用什么代码来写都是用第二种方法最好,先判断溢出基本就是重复做了两遍加。
页:
[1]