191 位1的個數

2021-10-07 10:34:39 字數 595 閱讀 5270

編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 『1』 的個數(也被稱為漢明重量)。

輸入:00000000000000000000000000001011

輸出:3

解釋:輸入的二進位制串 00000000000000000000000000001011 中,共有三位為 '1'。

思路,就是有多少個1唄,迴圈遍歷這32位數

方法一:對於n中數,每次給他左移,判斷最後一位是不是1即可,即和1相於既可以判斷

int hammingweight(uint32_t n) 

n >>= 1;

}return sum;

}

方法二:利用n和n-1之間的關係,因為n最後一位位1的地方,對應的n-1的是0,n-1之後的數是1,而n是0,該位之前的數相同,

即每次n和n-1按位相與,n的最後乙個位1的位就會被置為0,不斷的給他按位相與,那麼最後n就是0,所以可以進行對1的個數進行計數

int hammingweight(uint32_t n) 

return sum;

}

僅僅記錄所想的

191 位1的個數

題目描述 編寫乙個函式,輸入是乙個無符號整數 以二進位制串的形式 返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 高階 示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 000000000000000000000000...

簡單 191 位1的個數

簡單 191.位1的個數 編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 00000000000000000000000000001...

Leetcode191 位1的個數

題目 編寫乙個函式,輸入是乙個無符號整數,返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 輸入 11111111111111111111111111111101 輸出 31 解釋 輸入的二進位制串 11111111111111111111111111111101 中,共有 31 位為...