计算机组成原理:运算方法与运算器
Computer Organization: Arithmetic Logic
整数
定点加、减法运算
补码加法:[x]补 + [y]补 = [x+y]补
补码减法:[x-y]补 = [x]补 - [y]补 = [x]补 + [-y]补
定点乘法运算
原码一位乘法运算:符号位异或,其他位乘法。运算过程与十进制乘法类似(竖式)。
习题
某加法器进位链小组信号为C4C3C2C1,低位来的进位信号为C0,请分别按下述两种方式写出C4C3C2C1的逻辑表达式:
(1) 串行进位方式
(2) 并行进位方式
令,
- 串行
- 并行
浮点数
浮点数表示 IEEE 754
- S: 0正1负
- Exp: 阶码
- Frac: 尾数
32位float: S1 Exp8 Frac23
64位double: S1 Exp11 Frac52
浮点数运算
- 对阶:小阶向大阶看齐。小阶每次尾数右移一位,阶码加一,直到阶码相同为止。
- 尾数相加
- 结果规格化(使尾数处于规格化范围内):
- 左规
- 若尾数为原码,应使结果为x.1xxx
- 若尾数为补码,最高位与符号位相反
- 对 IEEE 754,尾数应为 1.M 形式
- 右规
- 若尾数形如01.xx..x或10.xx..x,应将其右移一位,阶码加一
- 左规
- 检查上溢或下溢
- 舍入处理
- 就近舍入(向偶数舍入)(默认是这个):如果尾数超出共3为001, 010, 011舍去;101, 110, 111进位; 100 看最低有效位,若为0则舍去,为1则进位,此时舍入结果始终为偶数
- 朝0舍入:向数轴原点方向截断
- 朝舍入:负数截断,正数多余不全为0就进位
- 朝舍入:与👆相反
习题
将下列十进制数表示成IEEE754标准的32位浮点规格数
(1) 27/64
S = 0
E = -2 + 127 = 125 = 0111 1101
M = 1011 0000 … 0000
结果:0 01111101 1011 0000 0000 0000 0000 000
*(2) -27/64
S 取反,其他一样
结果:1 01111101 1011 0000 0000 0000 0000 000
下列各数使用了IEEE 32位浮点格式,相等的十进制是什么?
(1) 1 10000011 110 0000 0000 0000 0000 0000
S = 1
Exp = 1000 0011 = 131
Frac = 110 0000 … 0000
E = 131 - 127 = 4
M = 1.11
= - 11100 = -28
(2) 0 01111110 101 0000 0000 0000 0000 0000
S = 0
Exp = 0111 1110 = 126
Frac = 101 0000 … 0000
E = 126 - 127 = -1
M = 1.101
= 0.1101 = 0.8125
32位字长的浮点数,其中阶码8位(含1位阶符),基数是2,尾数24位(含1位数符)。 当机器数采用原码表示,则其对应的最小正数、最小负数是多少? 当机器数采用补码表示,且尾数为规格化形式,则其对应的最大正数、最大负数是多少?
- 原码表示时
- 尾数非规格化
- 最小正数:
- 最小负数:
- 尾数规格化
- 最小正数:
- 最小负数:
- 故最小正数 ,最小负数 。
- 尾数非规格化
- 补码表示时
- 尾数规格化
- 最大正数:
- 最大负数:
- 尾数规格化
设阶码3位,尾数6位,按浮点运算方法,完成下列取值的[x + y],[x - y]运算:
(1) ,
对阶为-010
(2) ,