C++ 原码、反码、补码理解笔记
生活随笔
收集整理的这篇文章主要介绍了
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++ 原码、反码、补码理解笔记的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 决策树——学习笔记(一)
- 下一篇: Opencv+Windows+Codeb