这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战
考研倒计时:44天
参考资料: 王道计算机组成考研
上篇和中篇总结了数值与编码以及ALU硬件的内容和定点数的运算。
本篇总结浮点数的运算作为计组数值这一章的结束。
首先先补充一些中篇的tip:
-
凡是原码运算,不论加减乘除,符号位都单独处理,其中乘除运算的结果由参加运算的两个操作数符号相异或得到。
-
无符号整数的加减可以看作正整数的补码加减运算,所以补码加法器既可以实现有符号整数的加减,也可以实现无符号整数的加减运算。(详见【2011年真题】)
-
熟悉各种溢出判断,比如无符号数加减以及有符号数加减溢出判断,无符号数乘法和有符号数乘法溢出判断。(乘法溢出判断详见【2020年408】真题)
浮点数
需要注意的点:
- 移码加的是128,而浮点数加的是127. 所以,八位二进制的补码范围为-128~+127,加上128后,它的范围就变成了0~255.
而在IEEE 32位浮点格式中,阶码字段为8位,加的偏置值为127,指数真值e的范围为-127~+128,阶码E的范围为0~255,去除E全0代表非规格数和全1代表无穷大, 所以最后范围为 。
真正的指数e的范围为-126~127.
这里需额外注意一下,可以做一下 【2017年408】真题
浮点数的加减运算
对于浮点数其他需要关注的点:
- 规格化,左规相当于乘2,阶码减1;右规相当于➗2,阶码加一。对于原码和补码的规格化都要了解。
- 溢出判断,比如双符号位补码为例,阶码符号位为01表示上溢,进入中断处理;阶码符号位为10表示下溢,按机器零处理。真实符号和高位符号位一致。
- 舍入的方法: 0舍1入,可能导致一次右规。
恒置1,同样会使得尾数变大和变小的可能。
部分内容待补充完善~
如有误,请多指正!