求 −13 的补码,可以对正数 13 的二进制,从右向左扫描,遇到第一个 1 之后,右边所有位全部取反,左边保持不变。
标准补码定义是"按位取反后加1"。题目描述的"从右向左扫描,遇到第一个1之后右边全部取反"是反码算法的变体。以13为例,二进制00001101,按题述方法:最右1→0,0→1,1→0,1→0,0→1,0→1,0→1,0→1,得11110010。而正确补码应为11110011(00001101取反得11110010,再加1)。两者差1,故命题错误。
选项A是典型陷阱,利用"取反"与"补码"的语义混淆。学生易将"遇到第一个1后取反"误认为补码定义,实则这是反码(one's complement)的构造方式。补码必须包含"加1"步骤,否则无法正确表示负数。
本题考查GESP三级"二进制与补码"模块。命题人特意设计此题,卡住的是考生对"补码定义"的机械记忆——许多学生只背了"取反加一",却忽略了"从右向左扫描,遇到第一个1之后右边全部取反"这一描述与标准定义的本质差异。
标准补码定义是"按位取反后加1"。题目描述的"从右向左扫描,遇到第一个1之后右边全部取反"是反码算法的变体。以13为例,二进制00001101,按题述方法:最右1→0,0→1,1→0,1→0,0→1,0→1,0→1,0→1,得11110010。而正确补码应为11110011(00001101取反得11110010,再加1)。两者差1,故命题错误。