正负数减法变加法的法则(正负数取反的位运算)
首先需要了解下三种编码形式:
计算机的原码、反码和补码
- 原码:符号位加上真值的绝对值,第一位表示符号,其余位表示值。
- 反码:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余位取反。
- 补码:正数的补码还是其本身;负数的补码是在其原码的基础上,符号位保持不变,其余位取反,最后 1。即反码加1。
对于 5和-5,
- [ 5] = [0101]原 = [0101]反 = [0101]补
- [-5] = [1101]原 = [1010]反 = [1011]补
了解了上面三种编码形式,将正数变负数,和将负数变正数,就可通过位运算得到。
- 正数取反加一,则变成其对应的负数(补码表示)
- 负数取反加一,则变为其对应的正数(原码表示)
即:x_rev = ~x 1
代码示例:
取反的位运算
相关阅读计算机为何采用补码的形式来表示负数
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com