加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

算法 – 计算机是否需要更多时间来乘以,除,减,添加两个大数而不

发布时间:2020-12-14 04:36:01 所属栏目:大数据 来源:网络整理
导读:我们(人)花费更多的时间来乘法,加法,除法和减去两个大数而不是两个小数. 计算机是否需要更多的时间来乘以5 * 2而不是51234 * 987654,或者是在相同的时间内完成操作? 两个大于处理器字长的数字(例如两个128位数)怎么办? 我看到了文章https://en.wikipedia.o
我们(人)花费更多的时间来乘法,加法,除法和减去两个大数而不是两个小数.

计算机是否需要更多的时间来乘以5 * 2而不是51234 * 987654,或者是在相同的时间内完成操作?

两个大于处理器字长的数字(例如两个128位数)怎么办?

我看到了文章https://en.wikipedia.org/wiki/Multiplication_algorithm

解决方法

取决于输入类型.对于CPU本身支持的原语,例如64位CPU上64位数的乘法:否,这些原子操作总是花费相同的时间.对于非原始数据类型,如Java的BigInteger或其他语言中的类似库类:是的,这些不再是原子操作,因此根据操作数的大小,所需的时间量不同.

由于一个简单的原因,基元的乘法总是占用相同的时间:操作是在没有任何条件执行的情况下构建硬连线,并且总是在64位CPU上迭代所有64位,无论输入是否只有5位长或占用所有64位.同样适用于任何其他位数的体系结构.

编辑:正如@nwellnhof所说:一些指令实际上确实包含分支,例如浮点运算.通常这些指令基于微码,因此在较窄的意义上不能算作原子指令.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读