宝慕林4294392
public class TestRightMove {public static void main(String[] args){int a = 5;//00000101int b = a >> 2;System.out.println("b= "+b);//1System.out.println( Integer.toBinaryString(a) ) ;int c = 133;//10000101int d = c >> 2;System.out.println("d= "+d);//33System.out.println( Integer.toBinaryString(c) ) ;int e = -1;//11111111111111111111111111111111int f = e >> 2;System.out.println("f= "+f);//-1System.out.println( Integer.toBinaryString(e) ) ;int m = -4;//11111111111111111111111111111100int n = m >> 2;System.out.println("n= "+n);//-1System.out.println( Integer.toBinaryString(m) ) ;}}--------------------------------------------运行上面的程序也许看的更清楚一些。我们通常运行的系统是32位系统,java中运行>>符号计算时,其实是对int变量在内存中的存放形式二进制进行移位计算。比如int a = 5;//00000101,其实在系统中是32位的,前面都是0,所有>>2后就是1,而int e = -1;//11111111111111111111111111111111,首位是1,所有无论怎么移动都是结果都是-1