java移位運算符不外乎就這三種:<<(左移)、>>(帶符號右移)和>>>(無符號右移)。
一.左移
它的通用格式如下所示: value << num num 指定要移位值value 移動的位數。
左移的規則只記住一點:丟棄最高位(符號位同樣丟棄),0補最低位
如果移動的位數超過了該類型的最大位數,那么編譯器會對移動的位數取模。
例如:3 <<2(3為int型) 1)把3轉換為二進制數字0000 0000 0000 0000 0000 0000 0000 0011, 2)把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位 3)在低位(右側)的兩個空位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 1100, 轉換為十進制是12。
注:n位二進制,最高位為符號位,因此表示的數值范圍-2^(n-1)~2^(n-1) -1,所以模為2^(n-1)。
二.帶符號位右移
它的通用格式如下所示: value >> num num 指定要移位值value 移動的位數。 帶符號位右移的規則只記住一點:符號位不變,左邊補上符號位
三.無符號右移
它的通用格式如下所示: value >>> num num 指定要移位值value 移動的位數。 無符號右移的規則只記住一點:忽略了符號位擴展,0補最高
新聞熱點
疑難解答