计算机中所有的数都是以补码形式存储;
三个栗子说明:
1(正数的原码反码补码都一样);
原码:00000001;
反码:00000001;
补码:00000001;
-1
原码:10000001(第一个1代表符号);
反码:11111110(除了符号全部取反);
补码:11111111(在反码的基础上+1);
因为计算机中存储的都是以补码形式,栗子:~1==?按位取反的时候就需要:
将1的补码取反:11111110;
将得到的补码减1,得到反码:11111101;
将得到的反码取反得到:10000010(此过程中注意取反的时候第一个1代表的为符号:1代表负数,0代表正数,除了符号要全部取反);
最后将得到的二进制原码转换成十进制即为-2;