题目
给定一个正整数 a,当需要计算 -a 的补码时,有这样一个计算技巧:将 a 的二进制形式从右往左扫描,遇到第一个 1 之后,将找到的第一个 1 左边的所有位都取反,能得到 -a 的补码。
答案:A
考点
解题思维
看到“第一个1左边取反” → 联想补码定义~a+1的等价实现。
常见错误
易与“整体取反”混淆,补码定义是~a+1,但技巧只需第一个1左侧取反。
详细解析(节选)
考点:补码表示|位运算|二进制负数表示 记忆:-a 补码=~a+1,等价于从右扫到第一个1,其左侧取反、右侧不变 → 答案 A. 正确
- 易混点:该技巧≠整体取反,整体取反对应的是 -a-1 或需额外加1处理。
- 易混点:若改为“第一个0左侧取反”,则计算的是 -(a+1) 的补码。
同考点真题
- 第 14 题· NOIP 2007 普及组初赛试题 · 答案 C看解析 →
- 第 23 题· NOIP 2007 普及组初赛试题 · 答案 15,46看解析 →
- 第 5 题· NOIP 2007 提高组初赛试题 · 答案 A看解析 →
- 第 20 题· NOIP 2008 普及组初赛试题 · 答案 D看解析 →
- 第 23 题· NOIP 2008 普及组初赛试题 · 答案 23看解析 →