源码得反码
1. -64的源码反码补码是什么
-64,有符号数,第一位为符号位所以,
原码:
11000000,二进制1000000转换成10进制为64
反码:
正数的反码与原码相同,负数的反码,符号位不变,其余各位按位取反,所以反码为:
10111111
补码:
正数的补码与原码相同,负数的补码,符号位不变,其余各位按位取反再加1,所以反码为:
10111111+1=11000000
计算机里,负数的是以补码形式存放的,WIN7以上的系统自带的计算器就可以查看负数的补码。打开计算器,切换到程序员模式,然后输入-64,可以看到下面的补码,如图:
注意红框里面的数字即是-64的补码,如果是负数,前面的所有位数都是1
2. 源码反码与补码
8位2进制原码反码补码表示法:第一位是符号位,正数为0负数为1
-67的原码是11000011,换成反码符号位不变,其他各位依次求反:
10111100,换成补码只在反码基础上末位加1:
10111101。
55的原码00110111,正数原码反码补码相同。
补码实现55-67:00110111
+10111101
---------------------------
11110100
把这个补码末位减一,符号位不变各位取反得到结果的原码表示:10001100,
转换成十进制刚好等于-12,验证了结果11110100是正确的。
3. 源码-反码-补码 的转换规则
正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码
4. +0或者-0的源码、反码、补码
0原码是00000000
-0原码是10000000
0反码是00000000
-0反码是11111111
0补码是00000000
补码没有正0与负0之分
正数的反码、补码和其原码相同负数的反码是其原码除符号位外其他位取反负数的补码是取其反码后加1