CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

计算机位数越长越精确吗?

已有 6584 次阅读 2010-4-30 05:46 |个人分类:教学笔记|系统分类:科研笔记| 指令系统, 计算机体系结构, 精确计算

                                                                          姜咏江
 
计算机厂商经常以计算机的“位长”作为卖点,似乎让用户深信:计算机位数越长越精确,性能越好。其实未必如此。
 
计算机运算的精确度并不是由运算器的位数来决定的,而要看能否与存储器配合起来,设计好相应的指令,才能够精确地进行计算。这里给出用8位教学计算机求255以内自然数阶乘的例子,足可以说明这方面的问题。读者有兴趣还可以做后面的练习。
 
例 求自然数N! (255!的精确结果长度为210个字节)
 
我们只求一个不超过255的阶乘问题的解决。由于部分积位数的不断增加,必须用分段相乘的方法处理。
 
用4位十进制作7865’4264×2361,我们可以如下分步操作。
 
(1)4264×2361=1006’7304,然后作
 
(2)7865×2361=1856’9265,还要作
 
(3)1856’9265+1006=18570271,最后的结果是
 
(4)1857’0271’7304。
 
如果被乘数位数再多,那么要不断地进行(2)(3)的操作,将其用一条指令来完成,就设计出了“乘加”指令MADD。
 
这里采用由低向高的乘,方便知道部分积的长度。从1×k(k=1)开始,将每次与乘数k相乘的一个字节放在pw0中,每次乘得的结果(部分积)放在p开始的位置,高字节在高地址处。
 
“变量分配”是在数据存储器当中进行的,从0号单元开始。
 
 
 
 
 
 
 
2010-4-29
 
 


https://blog.sciencenet.cn/blog-340399-317838.html

上一篇:搞处理机设计的诀窍
下一篇:小心移动通信“技术性”拿走你的钱
收藏 IP: .*| 热度|

2 吕喆 姚成祥

发表评论 评论 (3 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-22 09:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部