什麼是漢明重量

2021-10-24 05:57:53 字數 1132 閱讀 3856

191. 位1的個數 【簡單題】【位運算】

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

輸入:00000000000000000000000000001011

輸出:3

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

輸入:00000000000000000000000010000000

輸出:1

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

輸入:11111111111111111111111111111101

輸出:31

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

解法1:位運算

【核心思想】

【舉例說明】

【**】

public

class

solution

return ans;

}}

【備註】這道題還有一種更簡單的方法。首先我們要知道n & (n - 1)代表著把n的最後乙個1變成0,為什麼?舉例說明,令n = 10110,那麼n - 1 = 10101n & (n - 1) = 10110 & 10101 = 11100,確實把最後乙個1變成了0。嚴密的證明過程讀者可以自己探索一下

所以,只要重複n & (n - 1)的操作,直到n == 0,那麼操作了幾次,n中就有幾個1

public

class

solution

return ans;

}}

210322 漢明重量

編寫乙個函式,輸入是乙個無符號整數 以二進位制串的形式 返回其二進位制表示式中數字位數為 1 的個數 也被稱為漢明重量 class solution def hammingweight self,n int int return bin n count 1 注意到,n 1可以判斷n的最後一位是否為1...

漢明重量(Hamming Weight)

就是將乙個字串變換成另外乙個字串所需要替換的字元個數。例如 1011101 與 1001001 之間的漢明距離是 2。2143896 與 2233796 之間的漢明距離是 3。toned 與 roses 之間的漢明距離是 3。乙個符號串的 漢明重量 等於 同樣長度的全零符號串的 漢明距離。在最為常見...

減一與運算計算漢明重量

刷leetcode還是能學到很多小知識的,今天學到了如何在二進位制數中快速輸出有幾個1,二進位制中1的個數也稱為漢明重量 思路很簡單 1 設個數為0,原始資料是n 2 如果n等於0,輸出個數,如果不等於零,n n n 1 3 個數加1,迴圈 2 舉個例子就很清楚了 n 01001 n n n 1 0...