原码、反码和补码、计算
首先我们明白计算机存储任何数据都是采用二进制的形式,原码就是我们的数据存储到计算机中的二进制形式,第一位是符号位,用0来表示正数,用1来表示负数。
1、原码
例如:2 的原码可以表示为:0-----0010
正数的原码、反码、补码都是一样的。
2、反码
负数的反码=他的原符号位不变,其他位置取反,也就是(0->1,1->0)
负数的反码=负数补码-1
3、补码:
负数的补码=它的反码+1
4、重点是来说一下计算
Java没有无符号数,换言之,Java中的数据都是有符号的
原码的计算不做过多说明和练习
反码:
1、
System.out.println(~ 2);//输出为-3,大家可以试一试
//2的原码为0010,2的反码为0010,在得到2的补码为0010,取反的到1101,因为是负数
//那就要先得到取反(补码)之后的反码=负数的补码 - 1 => 1100,再得到原码1011