题目
*25.若某数在计算机中表示为8位二进制补码11110110,则该数对应的十进制真值为()。A. -10B. -11C. -12D. -13
*25.若某数在计算机中表示为8位二进制补码11110110,则该数对应的十进制真值为()。
A. -10
B. -11
C. -12
D. -13
题目解答
答案
A. -10
解析
本题考查计算机中二进制补码与十进制真值的转换知识。解题思路是先判断补码的正负,若为负数,需要先求出其原码,再将原码转换为十进制真值。
步骤一:判断补码的正负
在二进制补码表示中,最高位为符号位,若符号位为 1,则表示该数为负数;若符号位为 0,则表示该数为正数。
已知该 8 位二进制补码为 11110110,其最高位(第 8 位)为 1,所以该数是负数。
步骤二:求补码对应的原码
对于负数的补码求原码的方法是:补码减 1 得到反码,再将反码各位取反得到原码。
- 求反码:
补码 11110110 减 1,即 $11110110 - 1 = 11110101$,所以反码为 11110101。 - 求原码:
将反码 11110101 各位取反(符号位不变),得到原码 10001010。
步骤三:将原码转换为十进制真值
原码 10001010 的符号位为 1,表示负数,数值部分为 0001010。
将数值部分 0001010 转换为十进制,根据二进制转十进制的公式$N=\sum_{i = 0}^{n - 1}a_{i}\times2^{i}$(其中$a_{i}$为二进制位的值,$n$为二进制数的位数)可得:
$0\times2^{6}+0\times2^{5}+0\times2^{4}+1\times2^{3}+0\times2^{2}+1\times2^{1}+0\times2^{0}=8 + 2 = 10$
因为符号位为 1,所以该数的十进制真值为$-10$。