1.二进制最高位是符号位:0表示正数,1表示负数。
2.负数的反码=它的源码符号位不变,其他取反。
3.负数的补码=它的反码+1。
4.0的反码补码都是0.
5.java没有无符号数,换言之,java中的数都是有符号的。
6.在计算机运算的时候,都是以补码的方式来运算的。
位运算和移位运算:
>>算数右移:低位溢出,符号位不变,并用符号位补溢出来的最高位。
<<算数左移:符号位不变,低位补0。
>>>逻辑右移:低位溢出,高位补0.
class Binary { public static void main(String[] args) { int a=1>>2; int b=-1>>2; int c=1<<2; int d=-1<<2; System.out.println("1>>2= "+a); System.out.println("-1>>2= "+b); System.out.println("1<<2= "+c); System.out.println("-1<<2= "+d); System.out.println("~2= "+(~2)); System.out.println("2&3= "+(2&3)); System.out.println("2|3= "+(2|3)); System.out.println("~-5= "+(~-5)); System.out.println("13&7= "+(13&7)); System.out.println("-3^3= "+(-3^3)); System.out.println("3>>>2= "+(3>>>2)); } }