java中關於移位運算符的demo與總結(推舉)。本站提示廣大學習愛好者:(java中關於移位運算符的demo與總結(推舉))文章只能為提供參考,不一定能成為您想要的結果。以下是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與總結(推舉)就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。