题目
两浮点数x=2^101×0.11011011,y=2^111×(-0.10101100)。假设尾数在计算机中以补码表示,可存储10位尾数,2位符号位,阶码以补码表示,双符号位,求x+y。
两浮点数x=2^101×0.11011011,y=2^111×(-0.10101100)。假设尾数在计算机中以补码表示,可存储10位尾数,2位符号位,阶码以补码表示,双符号位,求x+y。
题目解答
答案
对x和y进行分析
对于x=2^101×0.11011011,阶码E=101,尾数M=0.11011011。
对于y=2^111×(-0.10101100),阶码E=111,尾数M=-0.10101100。
因为阶码以双符号位补码表示,尾数以双符号位补码表示且可存储10位尾数。
先将x和y的阶码和尾数都转换为补码形式。
Mx=0.11011011,其双符号位补码表示为00.11011011。
My=-0.10101100,先求原码[1]为1.10101100,再求补码为11.01010100。
Ex=101,双符号位补码为00101。
Ey=111,双符号位补码为00111。
因为Ey>Ex,需要将x的阶码向y的阶码对齐,将x的尾数右Ey-Ex=111-101=10(二进制[2])
右移2位后,Mx=00.00110110(双符号位补码形式),Ex=Ey=00111。
按照补码加法规则:
00.00110110+11.01010100=11.10001010
得到的结果11.10001010是规格化[3]的形式(因为符号位和最高有效位[4]不同)。
则x+y=2^111×(-0.01110110)(这里将结果的补码形式转换为原码形式为-0.01110110).
解析
步骤 1:分析x和y的阶码和尾数
对于x=2^101×0.11011011,阶码E=101,尾数M=0.11011011。
对于y=2^111×(-0.10101100),阶码E=111,尾数M=-0.10101100。
步骤 2:将x和y的阶码和尾数转换为补码形式
Mx=0.11011011,其双符号位补码表示为00.11011011。
My=-0.10101100,先求原码为1.10101100,再求补码为11.01010100。
Ex=101,双符号位补码为00101。
Ey=111,双符号位补码为00111。
步骤 3:对齐阶码
因为Ey>Ex,需要将x的阶码向y的阶码对齐,将x的尾数右Ey-Ex=111-101=10(二进制)。
右移2位后,Mx=00.00110110(双符号位补码形式),Ex=Ey=00111。
步骤 4:计算尾数和
按照补码加法规则:
00.00110110+11.01010100=11.10001010
步骤 5:规格化结果
得到的结果11.10001010是规格化形式(因为符号位和最高有效位不同)。
步骤 6:转换为原码形式
将结果的补码形式转换为原码形式为-0.01110110。
对于x=2^101×0.11011011,阶码E=101,尾数M=0.11011011。
对于y=2^111×(-0.10101100),阶码E=111,尾数M=-0.10101100。
步骤 2:将x和y的阶码和尾数转换为补码形式
Mx=0.11011011,其双符号位补码表示为00.11011011。
My=-0.10101100,先求原码为1.10101100,再求补码为11.01010100。
Ex=101,双符号位补码为00101。
Ey=111,双符号位补码为00111。
步骤 3:对齐阶码
因为Ey>Ex,需要将x的阶码向y的阶码对齐,将x的尾数右Ey-Ex=111-101=10(二进制)。
右移2位后,Mx=00.00110110(双符号位补码形式),Ex=Ey=00111。
步骤 4:计算尾数和
按照补码加法规则:
00.00110110+11.01010100=11.10001010
步骤 5:规格化结果
得到的结果11.10001010是规格化形式(因为符号位和最高有效位不同)。
步骤 6:转换为原码形式
将结果的补码形式转换为原码形式为-0.01110110。