GESP 三级 · GESP 202603 C++ 三级 第 7 题

选择题 · 答案 B

← 整套速查表 GESP 三级 全部真题

题目

二进制数 $10110101$ 是某数的 $8$ 位补码,该数的十进制是( )。

答案:B

解题思维

答案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}$。刷到类似题时先问自己"这是补码还是原码?"——补码直接按位权算,原码需要单独判断符号后再算绝对值。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断