天天看點

11.劍指offer-二進制中1的個數

題幹

輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼表示。

關鍵字:進制轉化,補碼反碼原碼

我的思路

在看解析之前,完全沒思路,沉住氣直接看解析吧。

大佬解析

11.劍指offer-二進制中1的個數
public class Solution {
    public int NumberOf1(int n) {
        int num = 0, flag = 1;
        while (flag != 0) {
            if ((n & flag) != 0) {
                num++;
            }
            flag <<= 1;
        }
        return num;
    }
}      
public class Solution {
    public int NumberOf1(int n) {
        int num = 0;
        while (n != 0) {
            num++;
            n &= (n - 1);
        }
        return num;
    }
}      

總結

繼續閱讀