数学研发论坛

 找回密码
 欢迎注册
查看: 1384|回复: 4

[求助] 请教一个问题 加法的两种实现方式

[复制链接]
发表于 2020-11-27 20:16:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

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

问题是,哪一种方式快一些呢?毕竟这种基础操作会大量的使用,一点点的快都有很大的影响。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-11-30 21:33:29 | 显示全部楼层
汇编可以add然后adc,据我所知是最快的算法(至少,如果你需要用64bit模拟128bit的加法,这是最快的)
别的我就不知道了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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 | 显示全部楼层
不管用什么代码来写都是用第二种方法最好,先判断溢出基本就是重复做了两遍加。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2022-5-20 08:05 , Processed in 0.079423 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表