java中 移位运算_java中关于移位运算符的demo与总结(推荐)
首先,移位運算符有三種,其操作類型只支持:byte / short / char / int和long五種。
<< 左移運算符,表示將左邊的操作數的二進制數據向左移動*位,移動后空缺位以0填充,多余位舍棄。(等同于乘2的n次方)
>> 右移運算符,二進制數據向右移動*位,就在其二進制數據后抹掉幾位?(這里還不錯定,但個人理解是這樣的)(等同于除2的n次方)
>>> 無符號右移運算符,不管移動前最高位是0還是1,右移后左側產生的空位部分都以0來填充。
下面我們借一個demo幫助理解:
public static void main(String[] args){
int a = 16;
int b = a << 2;//左移2,等同于16 * 2的2次方,也就是16 * 4
int c = a >> 2;//右移2,等同于16 / 2的2次方,也就是16 / 4
System.out.println("a的二進制數據為:" + Integer.toBinaryString(a));
System.out.println("a左移后二進制數據為:" + Integer.toBinaryString(b));
System.out.println("a右移后二進制數據為:" + Integer.toBinaryString(c));
System.out.println("a左移后的值為:" + b);
System.out.println("a右移后的值為:" + c);
}
}
查看運行結果,如圖所示:
首先,16的二進制數據為:10000;
左移兩位,10000變成1000000;
右移兩位,10000變成100;
把得到的二進制數據轉換成普通數據后,
a左移后的值為64,既16 * 2的2次方(16 * 4)。
a右移后的值為4,既16 / 2的2次方(16 / 4)。
看完這個demo再理解移位運算符是不是就簡單很多?
以上這篇java中關于移位運算符的demo與總結(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
總結
以上是生活随笔為你收集整理的java中 移位运算_java中关于移位运算符的demo与总结(推荐)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java transaction cn_
- 下一篇: java match parent_Ma