文号
t71954
阅读
9793
回复
9
收藏
6
关于长二进制数据分布式的计算问题?
2015/06/08
IP:重庆
如果两个二进制数相加,但是他们超长,如何把它们分成若干个小块进行计算,最好尽量不影响计算速度。
比如,两个16位长的二进制数据,需要进行计算,但是我只有若干个4位的计算器,这计算器算可以把4位直接转化为10进制数读出来,但是我需要的是那个16位相加的十进制结果,求解下,如何实现,只需说下原理就可以了,顺便问下,cpu是如何处理超长位的二进制数据的计算的。
11年6个月前IP:浙江
772470
1楼
设置个溢出标志就行了
计算的时候永远是2进制处理的,显示的时候才考虑十进制
引用
评论
仿生作者
11年6个月前IP:重庆
772480
2楼
引用 phpskycn:
设置个溢出标志就行了
计算的时候永远是2进制处理的,显示的时候才考虑十进制
我想问的是16位数据如何用若干个4位计算器实现分布计算,把数据是否可以是实现分割成无数小块,然后同时执行计算,然后汇总得出结果,如果能,如何办到的?
引用
评论
11年6个月前IP:广东
772510
3楼
弄进位标志,然后“汇总”的时候把低4位的进位标志加到高四位上。重复此过程直到不再产生新的进位为止。(其实就是把几个4位加法器拼接起来了。)

如果是只有一个加法器的cpu实际上用的是进位加指令实现的。
引用
评论
仿生作者
11年6个月前IP:重庆
772529
4楼
引用 radio:
弄进位标志,然后“汇总”的时候把低4位的进位标志加到高四位上。重复此过程直到不再产生新的进位为止。(其实就是把几个4位加法器拼接起来了。)

如果是只有一个加法器的cpu实际上用的是进位加指令实现的。
这样牺牲了计算速度了吗?还是说计算速度和16位的一样。
引用
评论
10年9个月前IP:广东
812517
5楼
最简单(可能也是效率最低)的是“模拟笔算”
你可以搜一下这个名词了解一下
引用
评论
10年9个月前IP:广东
813333
6楼
楼主没有提及上下文,也毫无背景知识,问题类似于“如何用30cm的尺子,把月球分成无数个小块,最终测量月球的直径,最好尽量不影响测量速度,只需说下原理就行了”。
有这个时间在脑壳上开洞,建议还是多花点时间去学学编程,写写代码。
引用
评论
10年9个月前IP:广东
813568
7楼
肯定会牺牲速度,要不然干嘛要16位32位加法器。
引用
评论
10年9个月前IP:广东
813569
8楼
如果加法器是支持带进位加法,可以硬件上串联起来组成更多位的加法器。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的