本章主要讲解如何用定点数进行四则运算和如何用浮点数进行加减法,同时会对定点数的四则运算进行实例化。
目录:
定点数回顾:
定点数的数据格式为一位符号位加二进制数据位,
定点整数的小数点默认在数据位最右边,
定点小数的小数点默认在符号位右侧。
定点数加减法
定点数加减法在数据表示中记录过,在这里简单记录。
定点数用补码进行加减法,因为补码的特殊性,我们可以用一种运算方式解决加减法。
就像钟表一样,负数补码的数据位就如同钟表倒转1/6和正转5/6一样,直接和正转(正值补码)相加,就能得出结果。
例子:


例3.4解析:
我们可以想象,表盘一圈是M=10000,-y倒转0110和正转1010(注意这里倒转和正转圈数,也可以理解为原本的倒转加了一圈,+1M)表现一样,x表示正转1001,表盘上先转1001,再转1010,最后表盘上表示转到的角度就是最后的值。
非常明显本题中“表盘”转超过一圈,最后停在0011位置,而这个值就是答案。
如果x的数值小于y的数值,会发生什么呢(假如为0.010)?思考一下
此时,最后计算结果1.1110,为负数,-0.0010.
定点加减法溢出检测
方法一:
通过简单的逻辑,我们能知道正正相加必为正,负负相加必为负,正负相加不一定。
因此我们可以知道:

方法二:
通过观察,我们发现,正正相加不溢出时不会出现符号位进位,负负相加必进位且符号位为1,正负相加不会溢出,于是我们可以将符号位变成两位X1X2,当加数符号相同时,需要两位符号位相同,就能证明未溢出,如果不同,则溢出。
网友评论