按位運算

  1. 與運算&
    對于一個正整數(shù)x來說,對x進行 x&(x-1)操作其實就是將x的二進制表示法中最后一個1換成0,以下代碼可以對x的二進制表示的1的個數(shù)進行統(tǒng)計
    Java
    public static int num1(int x) {
    int count = 0;
    while (x > 0) {
    count++;
    x = x & (x - 1);
    }
    return count;
    }
相似地,x|(x+1)操作是將x的二進制表示法中的最后一個0換成1.

2.異或運算 ^
相同得0 ,相異得1;
對任意整數(shù)a,b, c有 :
0^a = a;  a^a =0;  a^b = b^a;   a^b^c = a^(b^c)
- 異或運算交換兩個值:
```Java```
a = a^b ;
b = a^b;     // b =a^b^b = a
a = a^b;     // a = a^b^a = b
  • 異或運算解single num 問題 (leetcode 136):Given an array of integers, every element appears twice except for one. Find that single one.
    Java
    public int singleNumber(int[] nums) {
    int a = nums[0];
    for(int i = 1; i< nums.length; i++){
    a = a^nums[i];
    }
    return a;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容