刷题中,历来没研究过左移右移的,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;
    }
}

基础很差,因此我想了很久才想明白,第二个注释才与^运算才是重点。加油,今年要加薪。努力中

相关文章
相关标签/搜索