java中得左移、右移、與運算及應用舉例。

1、java中得左移與右移規則
n>>1 n右移一位,最高位爲1,則補1(帶單位,負數),最高位爲0,則補0;
示例:n = 13; 二進制:n 表示:00001101; n>>1 : 00000110(最高位補1);就是相當於13/2 結果爲6,移動兩位就是13/4 = 3 ->00000011
n<<1 n左移一位,最高位丟棄,最低爲補0;
示例:n = 16; 二進制:n表示:000010000; n<<1:000100000
結果是32 = 16* 2
2、左移右移得應用:
**、判斷一個數得二進制中有多少個1;
例:n= 15: 二進制:1111
將n與1 進行與運算(都是1 得1 ,不相同得0 ,都爲0 得0)
1111&1 -> 1111&0001 = 0001; 結果大於0,1得個數加1,然後將1左移得:0010。繼續與運算,以此類推,代碼展示:
在這裏插入圖片描述還有一種簡單得與運算也可算出,代碼展示(此處就不做詳細解釋):
在這裏插入圖片描述**判斷該數是否爲2得多少次方:
2得次方得二進制是隻有一個1得。所以只需要判斷該數得二進制是不是隻包含一個1即可。具體代碼上述判斷count 是否等於1,即n&n-1 是否等於0。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章