某浮点数字长16 位 , 其中阶码部分 4 位(含 1 位阶符) , 移码表示 , 以 2 为底 ; 尾数部分12 位(含1 位数符 , 位于尾数最高位) , 补码表示 , 规格化。 分别写出下列各题的二进制代码与十进制真值。 (1) 非零最小正数,二进制形式 十进制形式 ;
时间: 2024-02-14 17:25:47 浏览: 37
非零最小正数的二进制形式为0 0001 000 0000,其中0表示正数,0001表示阶码部分的移码表示,0000 0000表示尾数部分的补码表示。
二进制形式转换为十进制真值:
阶码部分:移码表示,即0001,转换为十进制得到1。
尾数部分:补码表示,即0.0000 0000,转换为十进制得到0。
因此,非零最小正数的十进制真值为:1 * 2^(-8) = 0.00390625。
相关问题
设浮点数字长为16位,其中阶码8位(含1位阶符),阶码采用移码表示,基值为2,尾数用补码表示,计 算: (1)机器数为83BCH的十进制数值。 (2)此浮点格式的规格化表示范围。(9.0分)
(1) 首先将83BCH转换成二进制数,得到 1000 0011 1011 1100。
其中第一位为符号位,0表示正数。
接下来的8位是阶码的移码表示,即 0000 0011。
最后的7位是尾数的补码表示,即 011 1100。
因此,该浮点数的机器数表示为:0 0000 0011 011 1100。
将其转换成十进制数,可以得到:(1.01111)₂ × 2³ = (11.75)₁₀
因此,83BCH的十进制数值为11.75。
(2) 该浮点格式的规格化表示范围可以通过以下步骤计算:
首先,由于阶码是8位,因此可以表示的阶码范围是从 0000 0000 到 1111 1111,共256个不同的阶码。
接下来,考虑规格化数的表示范围。在这个浮点格式中,规格化数的阶码范围是从 0000 0001 到 1111 1110,共254个不同的阶码。
对于每个阶码,尾数部分有7个有效位,因此可以表示的尾数范围是从 000 0000 到 111 1111,共128个不同的尾数。
由于阶码可以表示正负,因此规格化数的表示范围是:
(-1)⁸ × 1.0000000 × 2⁰ ~ (-1)⁸ × 1.1111111 × 2⁷ⁿ⁻²
其中n为规格化数的位数,即7。因此,规格化数的表示范围是:
-128 ≤ x ≤ 127.875
2、现需设计实现某型浮点计算机,约定其浮点数字长为 16 位,其中:阶码 6 位, 含 2 位阶符;尾数 10 位,含 2 位数符,补码表示,规格化表达。若现有两个十 进制数据:A=13/128,B=7/64,求 A+B 和 A-B 浮点数形式,最后结果要求规 格化且用十六进制表示
首先,将十进制数转换为二进制数:
$$
A = \frac{13}{128} = 0.00001101_2\\
B = \frac{7}{64} = 0.000111_2
$$
由于规格化要求尾数最高位为1,因此需要将A和B乘以2,得到:
$$
A = 0.0001101_2 \times 2^{-1}\\
B = 0.00111_2 \times 2^{-2}
$$
接下来,计算A和B的阶码:
$$
A = 1.101_2 \times 2^{-4},\quad exp_A = -4 + 2^{(6-1)-1} + 1 = 26_{10} = 1A_{16}\\
B = 1.11_2 \times 2^{-3},\quad exp_B = -3 + 2^{(6-1)-1} + 1 = 27_{10} = 1B_{16}
$$
其中,exp为阶码,(6-1)表示阶码的位数,+1是因为阶码需要考虑阶符占据的一位。
然后,计算A和B的尾数,注意尾数的最高位是1,因此在计算时需要减去1:
$$
A = 1.101_2 \times 2^{-4} = 1.101_2 \times 0.0625_{10} = 0.06875_{10} = 0.0AE_{16}\\
B = 1.11_2 \times 2^{-3} = 1.11_2 \times 0.125_{10} = 0.21875_{10} = 0.37_{16}
$$
接下来,计算A+B和A-B的十进制值:
$$
A + B = 0.06875_{10} + 0.21875_{10} = 0.2875_{10} = 0.121_{16}\\
A - B = 0.06875_{10} - 0.21875_{10} = -0.15_{10} = -0.0C_{16}
$$
最后,将A+B和A-B的十六进制值规格化为浮点数形式:
$$
A + B = 1.21_2 \times 2^{-2},\quad exp = -2 + 2^{(6-1)-1} + 1 = 27_{10} = 1B_{16}\\
A - B = 1.1_2 \times 2^{-4},\quad exp = -4 + 2^{(6-1)-1} + 1 = 26_{10} = 1A_{16}
$$
因此,A+B的浮点数形式为:0x1B210000,A-B的浮点数形式为:0x1A100000。