题目
二、综合应用题01.现有一计算机字长32位(D_(31)sim D_(0)),符号位是第31位。对于二进制[1]1000111111101111110000000000000,1)表示一个补码整数,其十进制[2]值是多少?2)表示一个无符号整数,其十进制值是多少?3)表示一个IEEE754标准的单精度浮点数,其值是多少?
二、综合应用题
01.现有一计算机字长32位($D_{31}\sim D_{0}$),符号位是第31位。
对于二进制[1]1000111111101111110000000000000,
1)表示一个补码整数,其十进制[2]值是多少?
2)表示一个无符号整数,其十进制值是多少?
3)表示一个IEEE754标准的单精度浮点数,其值是多少?
题目解答
答案
1. 补码整数:符号位为1,取反加1得01110000000100000100000000000000,对应十进制值为1,883,262,976。故原数为-1,883,262,976。
2. 无符号整数:将10001111111011111100000000000000转换为十进制,得2,684,354,560。
3. IEEE 754浮点数:S = 1,E = 31,实际指数 = -96,1.M = 1.9765625。最终值为-1.9765625 × 2^(-96) ≈ -2.8823037615171175 × 10^(-29)。
答案:
1. -1,883,262,976
2. 2,684,354,560
3. -1.9765625 × 2^(-96)(或约-2.8823037615171175 × 10^(-29))
解析
本题主要考查计算机中不同编码方式下二进制数与十进制数的转换,以及IEEE754标准单精度浮点数的表示与计算。解题思路如下:
- 补码整数转十进制:
- 首先判断符号位,若符号位为1,则该数为负数。
- 对补码除符号位外取反加1,得到原码的绝对值部分。
- 最后将绝对值部分转换为十进制数,并加上负号。
- 已知二进制数为$10001111111011111100000000000000$,符号位$D_{31}=1$,为负数。
- 除符号位外取反得$11100000000100000011111111111111$,再加1得$11100000000100000100000000000000$。
- 计算其十进制值:
$\begin{align*}&1\times2^{30}+1\times2^{29}+1\times2^{28}+0\times2^{27}+0\times2^{26}+0\times2^{25}+0\times2^{24}+0\times2^{23}+0\times2^{22}+0\times2^{21}+1\times2^{20}+0\times2^{19}+0\times2^{18}+0\times2^{17}+0\times2^{16}+0\times2^{15}+0\times2^{14}+0\times2^{13}+0\times2^{12}+0\times2^{11}+0\times2^{10}+0\times2^{9}+0\times2^{8}+0\times2^{7}+0\times2^{6}+0\times2^{5}+0\times2^{4}+0\times2^{3}+0\times2^{2}+0\times2^{1}+0\times2^{0}\\=&1073741824 + 536870912 + 268435456 + 1048576\\=&1883262976\end{align*}$ - 所以原数为$-1883262976$。
- 无符号整数转十进制:
- 直接将二进制数按位权展开求和。
- 对于二进制数$10001111111011111100000000000000$,其十进制值为:
$\begin{align*}&1\times2^{31}+0\times2^{30}+0\times2^{29}+0\times2^{28}+1\times2^{27}+1\times2^{26}+1\times2^{25}+1\times2^{24}+1\times2^{23}+1\times2^{22}+0\times2^{21}+1\times2^{20}+1\times2^{19}+1\times2^{18}+1\times2^{17}+1\times2^{16}+1\times2^{15}+0\times2^{14}+0\times2^{13}+0\times2^{12}+0\times2^{11}+0\times2^{10}+0\times2^{9}+0\times2^{8}+0\times2^{7}+0\times2^{6}+0\times2^{5}+0\times2^{4}+0\times2^{3}+0\times2^{2}+0\times2^{1}+0\times2^{0}\\=&2147483648+134217728+67108864+33554432+16777216+8388608+4194304+2097152+1048576+524288+1048576+524288+262144+131072+65536+32768\\=&2684354560\end{align*}$
- IEEE754标准单精度浮点数计算:
- IEEE754单精度浮点数格式为:符号位$S$(1位)、指数位$E$(8位)、尾数位$M$(23位)。
- 符号位$S = D_{31}=1$,表示负数。
- 指数位$E = D_{30}\sim D_{23}=00011111$,转换为十进制为$31$。
- 实际指数$e = E - 127 = 31 - 127 = -96$。
- 尾数位$M = D_{22}\sim D_{0}=11111110111111000000000$,隐含最高位1,即$1.M = 1.11111110111111$。
- 计算$1.M$的值:
$\begin{align*}&1 + 1\times2^{-1}+1\times2^{-2}+1\times2^{-3}+1\times2^{-4}+1\times2^{-5}+1\times2^{-6}+1\times2^{-7}+0\times2^{-8}+1\times2^{-9}+1\times2^{-10}+1\times2^{-11}+1\times2^{-12}+1\times2^{-13}+1\times2^{-14}+0\times2^{-15}+0\times2^{-16}+0\times2^{-17}+0\times2^{-18}+0\times2^{-19}+0\times2^{-20}+0\times2^{-21}+0\times2^{-22}+0\times2^{-23}\\=&1 + 0.5 + 0.25 + 0.125 + 0.0625 + 0.03125 + 0.015625 + 0.0078125 + 0.001953125 + 0.0009765625 + 0.00048828125 + 0.000244140625 + 0.0001220703125 + 0.00006103515625 + 0.000030517578125\\=&1.9765625\end{align*}$ - 最终值为$-1.9765625\times2^{-96}\approx -2.8823037615171175\times10^{-29}$。