三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

[GESP202512 C++ 三级] 判断题第 9 题

[GESP202512 C++ 三级] 判断题第 9 题

【题目描述】
给定一个正整数 a ,当需要计算 -a 的补码时,有这样一个计算技巧:将 a 的二进制形式从右往左扫描,遇到第一个 1 之后,将找到的第一个 1 左边的所有位都取反,能得到 -a 的补码。
答:依据原码、反码、补码的定义可知,65 及 -65 的原码、反码、补码,如下表所示。

原码反码补码
650011 01010011 01010011 0101
-651011 01011100 10101100 1011

据此表,进行验证题设陈述:已知 65 的二进制为 00110101,从右往左扫描,将找到的第一个 1 左边的所有位都取反,得 11001011。其恰为 -65 的补码。据此,可知题设结论是正确的。


------------------------------- 原码、反码、补码的定义 -------------------------------
正数的反码等于其原码。
正数的补码等于其原码。
负数的反码等于对负数原码符号位以外的各位取反(0变1,1变0)。
负数的补码等于负数的反码加1。




【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/119720322
https://blog.csdn.net/hnjzsyjyj/article/details/119722653

← 返回列表