题目
10.(单选题,3.1分)已知X为定点整数[X]_(补)=10011011,则X的十进制真值是( )。A. +155B. -155C. +101D. -101
10.(单选题,3.1分)
已知X为定点整数$[X]_{补}=10011011$,则X的十进制真值是( )。
A. +155
B. -155
C. +101
D. -101
题目解答
答案
D. -101
解析
考查要点:本题主要考查定点整数补码表示法的十进制真值转换,涉及补码与原码的转换方法,以及二进制权值计算。
解题核心思路:
- 判断符号:根据补码最高位确定数的正负。
- 负数处理:若为负数,可通过取反加1得到原码的绝对值部分,或直接计算补码各位的权值之和。
- 权值计算:补码的每一位对应特定权值(符号位为$-2^{n-1}$,其他位为正权值),直接相加即可得到十进制值。
破题关键点:
- 最高位为1,确定为负数。
- 快速计算:直接按权展开计算补码各位的值,避免取反加1的中间步骤。
已知$[X]_{\text{补}} = 10011011$,最高位为1,说明$X$为负数。以下是两种解法:
方法一:取反加1法
- 取反:将补码各位取反,得到$01100100$。
- 加1:对取反结果加1,得到$01100101$(即原码的绝对值部分)。
- 计算数值:原码的数值部分为$1100101_2$,转换为十进制:
$64 + 32 + 4 + 1 = 101$ - 确定符号:最终$X = -101$。
方法二:直接按权展开
补码各位权值为:$-128, +64, +32, +16, +8, +4, +2, +1$。逐位计算:
$\begin{align*}X &= (-128) \times 1 + 64 \times 0 + 32 \times 0 + 16 \times 1 + 8 \times 1 + 4 \times 0 + 2 \times 1 + 1 \times 1 \\&= -128 + 16 + 8 + 2 + 1 \\&= -101\end{align*}$