快捷搜索:  汽车  科技

正负数绝对值的运算(正负数取反的位运算)

正负数绝对值的运算(正负数取反的位运算)计算机为何采用补码的形式来表示负数即:x_rev = ~x 1代码示例:取反的位运算

正负数绝对值的运算(正负数取反的位运算)(1)

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

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

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

对于 5和-5,

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

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

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

即:x_rev = ~x 1

代码示例:

正负数绝对值的运算(正负数取反的位运算)(2)

取反的位运算

相关阅读

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

猜您喜欢: