java位移運算符
❶ java中 << 什麼意思比如1<<30,謝謝哦~~
是位移運算服, <<左移運算,>>右移運算,還有不帶符號的位移運算 >>>.
左移的運算規則:按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的空位補零。
計算過程已1<<30為例,首先把1轉為二進制數字0000 0000 0000 0000 0000 0000 0000 0001
然後將上面的二進制數字向左移動30位後面補0得到0010 0000 0000 0000 0000 0000 0000 0000
最後將得到的二進制數字轉回對應類型的十進制
另外兩種的運算規則為
>>運算規則:按二進制形式把所有的數字向右移動對應巍峨位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補1.
>>>運算規則:按二進制形式把所有的數字向右移動對應巍峨位數,低位移出(舍棄),高位的空位補零。對於正數來說和帶符號右移相同,對於負數來說不同
❷ JAVA位運算怎麼用的
Java 位運算 Java 位運算[轉]一,Java 位運算1.表示方法:在Java語言中,二進制數使用補碼表示,最高位為符號位,正數的符號位為0,負數為1。補碼的表示需要滿足如下要求。(l)正數的最高位為0,其餘各位代表數值本身(二進制數)。(2)對於負數,通過對該數絕對值的補碼按位取反,再對整個數加1。2.位運算符位運算表達式由操作數和位運算符組成,實現對整數類型的二進制數進行位運算。位運算符可以分為邏輯運算符(包括~、&、|和^)及移位運算符(包括>>、<<和>>>)。1)左移位運算符(<<)能將運算符左邊的運算對象向左移動運算符右側指定的位數(在低位補0)。2)「有符號」右移位運算符(>>)則將運算符左邊的運算對象向右移動運算符右側指定的位數。「有符號」右移位運算符使用了「符號擴展」:若值為正,則在高位插入0;若值為負,則在高位插入1。3)Java也添加了一種「無符號」右移位運算符(>>>),它使用了「零擴展」:無論正負,都在高位插入0。這一運算符是C或C++沒有的。
public class Test3 {
public static void main(String[] args)
{
int i=4;
System.out.println(~i);//-5 (i的二進制為0100
System.out.println(~i&i);//0
System.out.println(~i|i);//-1
System.out.println(i>>2);//1
System.out.println(i<<2);//16
System.out.println(i>>>2);//1
System.out.println(-i>>2);//-1
System.out.println(-i>>>2);//1073741823
}
}
❸ Java移位運算符問題
有符號右移會保留最高位的符號位,從次高位開始逐位右移填0;而無符號右移會將符號位一起右移,並將高位全部填0。
例:對於一個byte類型的數10010100來說,有符號右移2位變為10000101,而無符號右移2位變為00100101。前者仍然是一個負數,而後者變成了正數。
左移只有有符號的,沒有無符號左移。
❹ java移位運算符>>>和>>的區別
「>> 右移,高位補符號位」 這里右移一位表示除2
「>>> 無符號右移,高位補0」; 與>>類似
「<< 左移」 左移一位表示乘2,二位就表示4,就是2的n次方