这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战
考研倒计时:45天
参考资料: 王道计算机组成考研
上篇总结了数值与编码以及ALU的内容
本篇总结定点数的运算。
下篇总结浮点数的运算。
定点数的运算
根据小数点的位置是否固定,在计算机中有两种数据格式:定点表示和浮点表示。
定点表示即约定机器数中的小数点是固定不变的。分为定点小数和定点整数。
有符号数的机器表示有原码、补码、反码和移码。
- 真值零的原码有两种形式,正零和负零。同理反码也不唯一。
- 真值零的补码是唯一的,0.0000;负1的补码为1.0000
- 移码常表示浮点数的阶码,只能表示整数。零的表示唯一:10000(n个0);移码保持了数据的原有的大小顺序,移码大真值就大,移码小真值就小。
图片来源mooc,根据图表理解记忆原反补移的范围大小。
定点数的移位运算
- 注意算术移位的对象是有符号数。
原码定点数的加减法运算
加法:符号位相同,绝对值相加,结果符号位不变;若不同则做减法,绝对值大的减去绝对值小的,符号位与绝对值大的相同。
减法:首先将减数的符号取反,然后将被减数和符号取反后的减数按原码加法进行运算。
补码定点数的加减法运算
计算机系统普遍采用补码加减运算。
定点数的乘法运算
| 乘法类型 | 符号位参与运算 | 部分积符号位 | 乘数符号位 | 累加次数 | 移位 |
|---|---|---|---|---|---|
| 原码一位乘法 | 否 | 2位 | 0位 | n | 向右 n次 每次一位 |
| 补码一位乘法 | 是 | 2位 | 1位 | n+1 | 向右 n次 每次一位 |
定点数的除法运算
| 乘法类型 | 符号位参与运算 | 加减次数 | 移位 | 说明 |
|---|---|---|---|---|
| 原码加减交替法 | 否 | N+1或N+2 | 向左 n次 | 最终余数为负,需恢复余数 |
| 补码加减交替法 | 是 | N+1 | 向左 n次 | 商末位横置1 |
部分内容待补充完善~
如有误,请多指正!