什么是原码反码补码

1100110011 原  

1011001100 反 除符号位,按位取反  

1011001101 补 除符号位,按位取反再加1  正数的原反补是一样的  

◆一个正数的补码和其原码的形式相同。 如果定义了一个整型变量i: int i; /*定义为整型变量*/ i=lO;/*给i赋以整数10*/
十进制数10的二进制形式为1010,在微机上使用的C编译系统,每一个整型变量在内存中占2个字节。
图2.2(a)是数据存放的示意图。图2.2(b)是数据在内存中实际存放的情况。
java的无符号右移()及原码、反码和补码的关系 - 宁静的深海 - 宁静的深海的博客
◆求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。 例如求-10的补码:①取-10的绝对值10;②10的绝对值的二进制形式为1010;③对1010取反得1111111111110101(一个整数占16位);④再加1得1111111111110110,见图2.3。
java的无符号右移()及原码、反码和补码的关系 - 宁静的深海 - 宁静的深海的博客

整数的16位中,最左面的一位是表示符号的,该位为0,表示数值为正;为1则数值为负。

需要特别注意的是:  负数都是用补码参与运算的。得到的也是补码,需要减1取反获得原码。          
          千万要理解这句话!!!