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

选择题 · 答案 B

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

题目

补码的情况下,关于按位取反运算,用笔计算的情况下,以下说法错误的是:( )

答案:B

解题思维

答案B。结合数组、位运算、进制等知识综合分析。

常见错误

注意题目中的否定词("不正确""不属于")和绝对化表述("一定""必须")。

详细解析(节选)

【考点】补码表示|按位取反运算|负数二进制逻辑(GESP 三级 3.2 模块)命题人卡住"~"与"取反"的混淆,90%学生以为~x=-x,却不知补码下~x=-(x+1)

【解题思维】补码下~x=-(x+1)是铁律。A:5=00…00101,~5=11…11010=-6;B:0=00…00000,~0=11…11111=-1≠0;C:-3=11…11101,~(-3)=00…00010=2;D:8=00…001000,~8=11…110111=-9。B错误,但多数人选B是"直觉正确"——看到~0=0,却忘了全1位串在补码下是-1

【陷阱拆解】B选项是经典陷阱:~0=0看似直观,实则全1位串在补码下是-1。命题人故意用"0"这个特殊值,利用学生"取反就是变号"的直觉错误。C选项~(-3)=2看似反直觉,但按补码规则:-3=11…11101,~(-3)=00…00010=2,逻辑自洽。D选项~8=-9同理,8=00…001000,~8=11…110111=-9,符合~x=-(x+1)。注意题干限定"int 类型 32 位",若换成 unsigned 或 64 位,答案会全变

【反命题思维】反命题:若问~(-1)结果?答案=0。再问~~5?答案=5。这类"双重取反"是补码系统的自反性,命题人若改写题干为"关于按位取反的逆运算",考点就从"补码表示"跃迁至"位运算的性质",答案会完全反转。刷到此类题,先问自己"命题人想考我什么"——是考补码定义,还是考位运算的代数性质?

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