1、某机字长 16 位,浮点数格式为 8 位阶码和 8 位尾数,规格化,阶码和尾数均 以双符号位的补码形式表示。求 A+B 和 A-B 的浮点数形式,最后结果要求规格 化且用十六进制表示。 (1)A = —48,B=63 (2)A = -0.875, B=
时间: 2023-07-15 16:11:09 浏览: 295
(1)
A = -48 的 16 位补码为 1111 1111 1100 0000,其中最高位为符号位。
将其分解为阶码和尾数形式:
阶码部分为 1111 1111,转换为十进制为 -1,因为阶码的真值为阶码的补码减去 256,即 -1 = 255 - 256。
尾数部分为 0.1000 0000,因为是规格化浮点数,所以尾数的最高位默认为 1,不用存储在补码中。
因此,A 的浮点数形式为:
1 1111 1110 1000 0000 = -1.5 × 2^7 = -192(十进制)
同理,B 的浮点数形式为:
0 1000 1111 0000 0000 = 1.96875 × 2^5 = 63(十进制)
A + B 的十进制结果为 15,转换为补码后为 0000 0000 0000 1111。
将其分解为阶码和尾数形式:
阶码部分为 0000 0000,转换为十进制为 0。
尾数部分为 0.1111 0000,因为是规格化浮点数,所以尾数的最高位默认为 1,不用存储在补码中。
因此,A + B 的浮点数形式为:
0 0000 0000 1111 0000 = 1.875 × 2^0 = 1.875(十进制)
A - B 的十进制结果为 -111,转换为补码后为 1111 1111 1001 0001。
将其分解为阶码和尾数形式:
阶码部分为 1111 1111,转换为十进制为 -1。
尾数部分为 0.1001 0000,因为是规格化浮点数,所以尾数的最高位默认为 1,不用存储在补码中。
因此,A - B 的浮点数形式为:
1 1111 1110 1001 0000 = -1.53125 × 2^7 = -195(十进制)
综上所述,A+B 的浮点数形式为 0 0000 0000 1111 0000,即 0x0F00;A-B 的浮点数形式为 1 1111 1110 1001 0000,即 0xFE90。
(2)
A = -0.875 的二进制表示为 1.110 0000,将其左移 3 位,得到规格化的阶码为 0000 0011,尾数为 1000 0000,因为是规格化浮点数,所以尾数的最高位默认为 1,不用存储在补码中。
因此,A 的浮点数形式为:
1 0000 0011 1000 0000 = -1.75 × 2^3 = -14(十进制)
B = 0.75 的二进制表示为 0.11,将其左移 4 位,得到规格化的阶码为 0000 0100,尾数为 1000 0000,因为是规格化浮点数,所以尾数的最高位默认为 1,不用存储在补码中。
因此,B 的浮点数形式为:
0 0000 0100 1000 0000 = 1.5 × 2^4 = 24(十进制)
A + B 的十进制结果为 -13/8,转换为补码后为 1111 1010 0000 0000。
将其分解为阶码和尾数形式:
阶码部分为 1111 1010,转换为十进制为 -6。
尾数部分为 1.0000 0000,因为是规格化浮点数,所以尾数的最高位默认为 1,不用存储在补码中。
因此,A + B 的浮点数形式为:
1 1111 1010 0000 0000 = -1.5 × 2^-6 = -0.0234375(十进制)
A - B 的十进制结果为 -11/8,转换为补码后为 1111 1011 0000 0000。
将其分解为阶码和尾数形式:
阶码部分为 1111 1011,转换为十进制为 -5。
尾数部分为 1.0000 0000,因为是规格化浮点数,所以尾数的最高位默认为 1,不用存储在补码中。
因此,A - B 的浮点数形式为:
1 1111 1011 0000 0000 = -1.75 × 2^-5 = -0.0546875(十进制)
综上所述,A+B 的浮点数形式为 1 1111 1010 0000 0000,即 0xFA00;A-B 的浮点数形式为 1 1111 1011 0000 0000,即 0xFB00。
阅读全文