姜咏江
计算机加减法运算器的设计需要给用户留出溢出的监控信号,以便用户能够利用存储器进行位数扩充,然后进行分段处理。计算机浮点数运算源自a×2b的科学记数法,其中a、b是一定位数的二进制数。浮点数加减法运算需要对阶,如果采用小数(尾数)右移的方式对阶,由于位数的限制,会丢失移位小数的部分有效数字,解决的办法是监测这种丢失有效数字的情况,并及时用标志线的信号报告。
8位阶码的浮点数尾数最大的位移是255,因而需要用一个256位的寄存器来承接移出的部分,监控标志线就是标示这个寄存器是否不是0。如果移出的部分小数不是0,且要保持精确计算,那么就需要扩充尾数的位数,进行分段的加减运算(注意,这种向右的位数扩充并不改变阶码,而加减运算的结果溢出,是向左的位数扩充,需要改变阶码)。
如果尾数加减运算的结果溢出,同样需要扩充尾数的位数,但由于尾数是纯小数表示,因而必须将两个尾数都右移同样的位数,同时阶码要增加位移量。
由于浮点加减运算的过程是先对阶,尾数加减之后才能发现运算溢出的,故求结果的阶码非常简单,只要将原先的大阶码加上移位数,就可以得到运算的结果的阶码。
设计浮点运算器要注意右移尾数要先判断正负,二进制右移时,正数高位添“0”,而负数高位应该添“1”。
2010-9-24
https://blog.sciencenet.cn/blog-340399-366252.html
上一篇:
设计错误出在哪里?下一篇:
计算机中如何比较数的大小?