题目
填空题 6分已知数的补码表示形式,求数的真值。[x]_(补)=0.10010,真值[填空1][x]_(补)=1.10010,真值[填空2][x]_(补)=1.11111,真值[填空3][x]_(补)=1.00000,真值[填空4][x]_(补)=0.10001,真值[填空5][x]_(补)=1.00001,真值[填空6]
填空题 6分
已知数的补码表示形式,求数的真值。
$[x]_{补}=0.10010$,真值[填空1]
$[x]_{补}=1.10010$,真值[填空2]
$[x]_{补}=1.11111$,真值[填空3]
$[x]_{补}=1.00000$,真值[填空4]
$[x]_{补}=0.10001$,真值[填空5]
$[x]_{补}=1.00001$,真值[填空6]
题目解答
答案
1. $[x]_{补} = 0.10010$,真值为 $0.5625$
2. $[x]_{补} = 1.10010$,真值为 $-0.4375$
3. $[x]_{补} = 1.11111$,真值为 $-0.03125$
4. $[x]_{补} = 1.00000$,真值为 $-1$
5. $[x]_{补} = 0.10001$,真值为 $0.53125$
6. $[x]_{补} = 1.00001$,真值为 $-0.96875$
\[
\boxed{
\begin{array}{cccccc}
0.5625 & -0.4375 & -0.03125 & -1 & 0.53125 & -0.96875 \\
\end{array}
}
\]
解析
补码转换为真值的核心思路:
- 判断符号位:补码的最高位为符号位,0表示正数,1表示负数。
- 正数处理:若符号位为0,直接将小数部分转换为十进制。
- 负数处理:若符号位为1,需补码减1后取反,得到原码的绝对值部分,再取负数。
关键知识点:
- 补码性质:正数的补码等于其原码,负数的补码通过原码取反加1得到。
- 二进制小数转十进制:小数点后第$n$位的权值为$2^{-n}$。
第1空:$[x]_{补}=0.10010$
- 符号位为0,直接转换小数部分:
$0.10010_2 = 1 \times \frac{1}{2} + 0 \times \frac{1}{4} + 0 \times \frac{1}{8} + 1 \times \frac{1}{16} + 0 \times \frac{1}{32} = 0.5 + 0.0625 = 0.5625$
第2空:$[x]_{补}=1.10010$
- 符号位为1,需补码减1后取反:
- 减1:$1.10010 - 0.00001 = 1.10001$
- 取反:$0.01110$
- 转换十进制:
$0.01110_2 = 0 \times \frac{1}{2} + 1 \times \frac{1}{4} + 1 \times \frac{1}{8} + 1 \times \frac{1}{16} + 0 \times \frac{1}{32} = 0.25 + 0.125 + 0.0625 = 0.4375$ - 取负数:$-0.4375$
第3空:$[x]_{补}=1.11111$
- 符号位为1,补码减1后取反:
- 减1:$1.11111 - 0.00001 = 1.11110$
- 取反:$0.00001$
- 转换十进制:
$0.00001_2 = 1 \times \frac{1}{32} = 0.03125$ - 取负数:$-0.03125$
第4空:$[x]_{补}=1.00000$
- 符号位为1,补码减1后取反:
- 减1:$1.00000 - 0.00001 = 0.11111$
- 取反:$1.00000$(但实际对应真值为$-1$,定点数特殊表示)
第5空:$[x]_{补}=0.10001$
- 符号位为0,直接转换小数部分:
$0.10001_2 = 1 \times \frac{1}{2} + 0 \times \frac{1}{4} + 0 \times \frac{1}{8} + 0 \times \frac{1}{16} + 1 \times \frac{1}{32} = 0.5 + 0.03125 = 0.53125$
第6空:$[x]_{补}=1.00001$
- 符号位为1,补码减1后取反:
- 减1:$1.00001 - 0.00001 = 1.00000$
- 取反:$0.11111$
- 转换十进制:
$0.11111_2 = 1 \times \frac{1}{2} + 1 \times \frac{1}{4} + 1 \times \frac{1}{8} + 1 \times \frac{1}{16} + 1 \times \frac{1}{32} = 0.5 + 0.25 + 0.125 + 0.0625 + 0.03125 = 0.96875$ - 取负数:$-0.96875$