1 首先咱得了解
计算机中存的是补码,运算用的也是补码。咱写出来的二进制加上符号位是原码,原码符号位不变其他按位取反得到反码,反码加一得到补码;
三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位是二进制
2 原码
用最高位表示符号位,1表示该数为负数,0表示该数为负数。其他位存放该数的二进制的数
例如:int i = 4; int a = -4;
i 的原码是:00000000 00000000 00000000 00000100
a 的原码是 10000000 00000000 00000000 00000100
定义时请注意取值范围
3 反码
注意 :正数的反码,原码,补码均相同
负数的反码就是原码除符号位不变,其他位按位取反。
int a = -4;
a 的原码是 10000000 00000000 00000000 00000100
a 的反码是 111111111 111111111 111111111 111111011
正数 符数 反码区别就在这;
4 补码
注意 :正数的反码,原码,补码均相同
负数的补码等于反码+1。
int a = -4;
a 的原码是 10000000 00000000 00000000 00000100
a 的反码是 111111111 111111111 111111111 111111011
a 的补码是 111111111 111111111 111111111 111111100
以上是原转反转补,想补码 转 反码 转源码把步骤倒过来就行。