
寶慕林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