正负数减法变加法的法则(正负数取反的位运算)

正负数减法变加法的法则(正负数取反的位运算)(1)

首先需要了解下三种编码形式:

计算机的原码、反码和补码

  • 原码:符号位加上真值的绝对值,第一位表示符号,其余位表示值。
  • 反码:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余位取反。
  • 补码:正数的补码还是其本身;负数的补码是在其原码的基础上,符号位保持不变,其余位取反,最后 1。即反码加1。

对于 5和-5,

  • [ 5] = [0101]原 = [0101]反 = [0101]补
  • [-5] = [1101]原 = [1010]反 = [1011]补

了解了上面三种编码形式,将正数变负数,和将负数变正数,就可通过位运算得到。

  • 正数取反加一,则变成其对应的负数(补码表示)
  • 负数取反加一,则变为其对应的正数(原码表示)

即:x_rev = ~x 1

代码示例:

正负数减法变加法的法则(正负数取反的位运算)(2)

取反的位运算

相关阅读

计算机为何采用补码的形式来表示负数

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页