刷題中,歷來沒研究過左移右移的,461. Hamming Distance

這道題,好多都知識都沒用過,只是知道,看了答案才知道這麼用,基礎太差了,打算看看軟考書,查缺補漏,大學其實都學了,就是沒有好好聽,哈哈哈哈哈,大學我真的聽了,可是沒有悟進去,就是聽不明白,大學專業課基本我都沒逃過,套的都是心理啊、馬克思啊什麼的,還念大學,今年6月份看看跟女友回哈爾濱去大學溜達溜達,還有中央大街,哈哈哈。io

| 其中一個爲1,返回1,&都爲1,返回1class

class Solution {
    public int hammingDistance(int x, int y) {
        /*相同爲0不一樣爲1,基礎

            只要統計出1出現的次數,就能夠獲得漢明距離。二進制

        */
        int tag = x ^ y;
        int count = 0;
        while(tag >0){統計

            /*註釋

            & 並運算,0 & 0 = 0,0 & 1 = 0,1 & 1 = 1;while

            因此tag & 0101,就能獲得最後一位是否是1,由於1的二進制0001前面都是0,因此直接忽略co

            0101中的前三位010,只考慮最後一位1return

            好比異或結果爲0101,tag

            */
            if((tag & 1) == 1) ++count;
            tag = tag>>1;
        }
        
        return count;
    }
}

基礎很差,因此我想了很久纔想明白,第二個註釋才與^運算纔是重點。加油,今年要加薪。努力中

相關文章
相關標籤/搜索