2、现需设计实现某型浮点计算机,约定其浮点数字长为 16 位,其中:阶码 6 位, 含 2 位阶符;尾数 10 位,含 2 位数符,补码表示,规格化表达。若现有两个十 进制数据:A=13/128,B=7/64,求 A+B 和 A-B 浮点数形式,最后结果要求规 格化且用十六进制表示
时间: 2023-06-27 22:05:36 浏览: 310
计算机组成原理之数字-week6(B)1
首先,将十进制数转换为二进制数。可以使用以下方法:
A = 13/128 = 0.10100000
B = 7/64 = 0.10110000
其中,小数部分可以通过连续乘2,取整数部分的方法转换为二进制数。整数部分为0,小数点后第一位为1,所以乘2后整数部分为0,小数点后第一位为0,再乘2后整数部分为1,小数点后第一位为0,以此类推,直到小数部分为0或者达到指定精度(本题为10位)。
接下来,将A和B表示为规格化的浮点数形式:
A = 0.10100000 * 2^(-7)
B = 0.10110000 * 2^(-6)
由于阶码只有6位,最大值为2^5-1=31,最小值为-2^5=-32,因此需要进行阶码的偏移。将阶码加上32后,得到:
A = 1.0100000 * 2^(-1)
B = 1.0110000 * 2^0
接下来,进行A+B和A-B的计算:
A+B = 1.0100000 * 2^(-1) + 1.0110000 * 2^0
= 1.1110000 * 2^(-1)
= 0.7 * 2^(-1)
A-B = 1.0100000 * 2^(-1) - 1.0110000 * 2^0
= 0.1000000 * 2^(-1)
= 0.1 * 2^(-1)
最后,将A+B和A-B转换为十六进制形式:
A+B = 0.7 * 2^(-1) = 0.7 * 2^(-1 + 32) = 0.7 * 2^(31) = 0.0000000B
A-B = 0.1 * 2^(-1) = 0.1 * 2^(-1 + 32) = 0.1 * 2^(31) = 0.0000003
因此,A+B的浮点数形式为0 100000 0000001011,即0x400B;A-B的浮点数形式为0 011111 1111111100,即0x3FFC。
阅读全文