前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

正负数取反的位运算(负数取反符号位需要取反吗)

qiguaw 2024-09-08 06:38:04 资源文章 38 ℃ 0 评论

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

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

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

对于+5和-5,

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

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

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

即:x_rev = ~x+1

代码示例:

相关阅读

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表