一个 $n$ 位的二进制数补码,最大的表示范围是从 $-2^{n-1}$ 到 $2^{n-1}-1$。
将选项中的各数统一为十进制后比较大小。二进制转十进制方法:按权展开求和。正确答案是B。
关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。
【考点】二进制补码|定点数表示范围|负数表示
GESP 三级大纲「计算机基础」模块:补码表示法、机器数范围。命题人专门挑了补码「非对称范围」这个特性来考——绝大多数考生背熟「-128 到 127」却说不清为什么,一换位数就懵。