二进制数 $10110101$ 是某数的 $8$ 位补码,该数的十进制是( )。
答案B。进制转换要熟练掌握各进制间的转换方法。注意0xf=15(十六进制),015是八进制(十进制13),两者不等。
二进制小数转十进制:小数点后第一位是2⁻¹=0.5,第二位是2⁻²=0.25。容易忽略负幂次。
【考点】二进制补码|8位整数范围|MSB符号位判定
【考纲定位】GESP三级《数据表示》模块。命题人专卡"看到最高位是1就以为是正数"的惯性思维——这是补码概念最薄弱的环节。
【解题思维】8位补码范围是-128到127。最高位是1说明是负数,直接按位权求和:$-2^7 + 0\cdot2^6 + 2^5 + 2^4 + 0\cdot2^3 + 2^2 + 0\cdot2^1 + 2^0 = -128 + 32 + 16 + 4 + 1 = -75$。
【陷阱拆解】选项D是误把补码当原码直接算的(128+32+16+4+1=181,但选项是75,说明它其实是把10110101读成01001011的十进制);A和C是中间求和时少算或多算1位(比如把$2^2$算成$2^3$或漏掉$2^0$)。补码题目的阴险之处在于它"看起来像无符号数",诱导你按正数算完再取负——这是绝对不行的,补码本身就是有符号的,不能二次取反。
【反命题思维】如果改成16位会怎样?范围扩大到-32768到32767,方法完全一样,只是$2^7$变成$2^{15}$。刷到类似题时先问自己"这是补码还是原码?"——补码直接按位权算,原码需要单独判断符号后再算绝对值。