移位運算符是位操作運算符的一種。移位運算符可以在二進位的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種:<<(左移)、>>(右移)和>>>(無符號右移)。
java移位符的類別
<< : 左移運算符,num<<1,相當於num乘以2
>> : 右移運算符,num>>1,相當於num除以2
>>> : 無符號右移,忽略符號位,空位都以0補齊,(計算機中數字以補碼存儲,首位為符號位)。
如:a = 00110111,則a>>2 =00001101,b=11010011,則b>>2 = 11110100;
如:a = 00110111,則a>>>2 =00001101,b=11010011,則b>>>2= 00110100。
//Integer.toBinaryString()是將數字用二進位格式顯示
inti=-10;
System.out.println(Integer.toBinaryString(i));
//左移兩位
intj=-10<<2;
System.out.println(Integer.toBinaryString(j));
//右移兩位
intm=-10>>2;
System.out.println(Integer.toBinaryString(m));
//無符號右移
intn=-10>>>2;
System.out.println(Integer.toBinaryString(n));
java移位符運算結果為:
11111111111111111111111111110110
11111111111111111111111111011000
11111111111111111111111111111101
111111111111111111111111111101(省略了首位兩個0)
無符號右移的規則只記住一點:數字右移,左側空出來的高位用0補齊。
總之,java移位符給大家簡單的介紹了一些,希望大家多看看。