小練習:計算漢明距離


1.漢明距離概念簡析

  漢明距離,從二進制方面來看,就是兩個等長字符串的二進制對應 bit 不相同的位個數,例如

1011 
1000 //漢明距離為2

1100
1010 //漢明距離是2

 

2.計算漢明距離的算法

  思路:

  01.將兩個給定的數進行 異或(^)運算后保存在變量a,漢明距離就是a的二進制中1的個數

  02.當a不為0時,和0x01進行 按位與(&)運算,如果結果為1,則統計變量加一

  03.將a右移一位,重復第02步

  代碼:

class Solution {
public:
    int hammingDistance(int x, int y) {
        int cnt = 0;
        x=x^y;
        while(x!=0)
        {
            if(x&0x01)
                cnt++;
            x=x>>1;
        }
        return cnt;
        
    }
};

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM