[x]补=1 1111001 00100101,[y]补=1 1110111 00110100
试按浮点加减运算算法计算[x±y]补。 3.9 已知某机浮点数表示格式如下: 0 1 数符 阶符 2 5 阶 码 6 11 尾 数
其中,浮点数尾数和阶码的基值均为2,阶码用移码表示,尾数用补码表示。设:
-+
x=0.110101×2001 y=-0.100101×2001 试用浮点运算规则计算x+y、x-y、x×y、x/y。(要求写出详细运算步骤,并进行规格化)。 解:机器数 [x]补=0 01111 110101 [y]补=1 10001 011011 [-y]补=0 10001 100101 (1)x+y 机器数 [x+y]补=1 10000 010000 x+y=-0.110000×20 对阶: [Δe]移=[ex]移+[-ey]补=01111+11111=01110,Δe=ex-ey=-00010 小阶对大阶:[x]补=0 10001 001101
[x+y]补=1 10000 010000 x+y=-0.110000×20 (2)x-y
[x-y]补=0 10001 110010 x-y=0.110010×21
--
(3)x×y x×y=-0.111110×2001=-0.111110×21 阶码相加:[ex+ey]移=[ex]移+[ey]补=01111+00001=10000 尾数可采用定点补码乘法(双符号位):[Sx×Sy]补=[Sx]补×[Sy]补=11.100001010111
--
规格化:[x×y]补=1 01111 000010 x×y=-0.111110×2001=-0.111110×21 (4)x/y
尾数|Sx|>|Sy|,Sx右移得:[Sx]补=00.011010,[ex]移=10000, 阶码相减:[ex-ey]移=[ex]移+[-ey]补=10000+11111=01111
尾数用补码不恢复余数法:[Sx/Sy]补=[Sx]补/[Sy]补=1.010011(恒置1) OR 1.010100(校正) 规格化:[x/y]补=1 01111 010011 OR 1 01111 010100
--
x/y=-0.101101×2001 OR -0.101100×2001 3.10 A C Cn Cn+1 移 ALU AND1 Cn Cn+1 CR 位 脉 冲 & AND2 Cn Cn+1 时钟脉冲 Q 结束 B B 寄存器B CT 启动 00. 0 0 0 0 0 1 0 0 1 1 0 0 00. 0 0 0 0 0 0 1 0 0 1 1 0 -x 00. 1 1 0 0 1
00. 1 1 0 0 1 00. 0 1 1 0 0 1 0 1 0 0 1 1 00. 0 0 1 1 0 0 1 0 1 0 0 1
+x 11. 0 0 1 1 1
11. 0 1 1 0 1 11. 1 0 1 1 0 1 0 1 0 1 0 0
11. 1 1 0 1 1 0 1 0 1 0 1 0
-x 00. 1 1 0 0 1
00. 1 0 1 0 0 0 1 0 1 0 1 0
得 [X×Y]补=0.1010001010 X×Y=0.1010001010
寄存器 运算初态 运算终态 A 00 00000 00 10100 B 11 00111 11 00111 C 1001100 0101010