hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 568|回复: 4

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

[复制链接]

604

主题

616

帖子

1951

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1951
发表于 2024-4-12 16:58:07 | 显示全部楼层 |阅读模式
如果我想实现一个加法,有两种方式,
一是,我是在加操作之前,判断是否可能会出现溢出,然后进行预先的操作。
二是,我直接进行加操作,如果出现溢出错误,我在错误处理里针对这种情况进行操作。

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

使用道具 举报

0

主题

185

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-12 16:58:45 | 显示全部楼层
汇编可以add然后adc,据我所知是最快的算法(至少,如果你需要用64bit模拟128bit的加法,这是最快的)
别的我就不知道了
回复

使用道具 举报

0

主题

193

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2024-4-12 16:59:18 | 显示全部楼层
看你用什么进制了,如进制为$2^{32}$,使用32位的adc指令。如进制为$2^{64}$,使用64位的adc指令。如进制小于$2^{32}$或者$2^{64}$,则不会溢出,但需要求做归约处理,求进位和本位。
回复

使用道具 举报

0

主题

195

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-12 16:59:39 | 显示全部楼层
Intel的处理器最新指令为多精度运算做了优化,可以并发执行多个不依赖CF进位的进位加法了
回复

使用道具 举报

0

主题

199

帖子

66

积分

关内侯

Rank: 2

积分
66
发表于 2024-4-12 17:00:32 | 显示全部楼层
不管用什么代码来写都是用第二种方法最好,先判断溢出基本就是重复做了两遍加。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-12-5 03:10 , Processed in 0.072518 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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