欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

C++ 原码、反码、补码理解笔记

发布时间:2025/10/17 c/c++ 24 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C++ 原码、反码、补码理解笔记 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

电脑是以补码形式来表示数字的。正数:原码,反码,补码都相同 ;负数:反码为除符号位外按位取反,补码为反码+1。

  • 如-1这个负数:
    -1的补码:1111 1111
    -1的反码:1111 1110
    -1的原码:1000 0001

比如我们平时看到5000的无符号短整数(16位整数),其实是原码(位模式)转换成反码再转换成补码后显示的结果,所以如果要知道原码是多少,需要反向转换一下,即从补码转成反码再转成原码。

1) 补码:无符号短整数 50,000在计算机中存储时是补码11000011 01010000

2) 反码:减1变成反码,1100001101010000 - 1 = 1100001101001111

3)原码:取反,变成原码,not 1100001101001111 = 0011110010110000,即15536,再因为补码最高位是1,所以是-15536

但是5000的二进制是0001001110001000,最高位是0,正数,所以补码、反码、原码都一样,位模式也是5000

附上一个简单好用的进制转换器链接link

总结

以上是生活随笔为你收集整理的C++ 原码、反码、补码理解笔记的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。