阅读C/C++源码,看到移位运算,翻书想起以前学过的原码,补码计算
有几个总结:
计算机中使用补码表示数据
正数 原码==反码==补码
负数 原码求反,再加1==补码;补码求反,再加1==原码
-128 没有原码
以下内容摘自 http://blog.chinaunix.net/uid-16249993-id-2750042.html
原码 补码 值0111 1111 0111 1111 127
0111 1110 0111 1110 126
......补码不断-1........
0000 0000 0000 0000 0
1000 0001 1111 1111 -1
1000 0010 1111 1110 -2
1000 0011 1111 1101 -3
......补码不断-1........
1111 1111 1000 0001 -127
无法表达 1000 0000 -128
于是就有了规定 1000 0000 定为 -128的补码