c++获取一个整数二进制形式下的最后一位

在这里插入图片描述
法一中有取二进制形式下最后一位

class Solution {
public:
    int hammingDistance(int x, int y) {
        
        法一:
        int res=0;
        while(y||x)
        {
            int a=x & 0x01,b=y & 0x01;//截取二进制位的最后一位
            if(a^b)
                res++; 
            x>>=1;
            y>>=1;
        }
        return res;
        

        
        法二:奇数%2==1,偶数%2==0
        int res=0;
        while(x||y)
        {
            if(x%2!=y%2)
                res++;
            x=x/2;
            y=y/2;
        }
        return res;
        

        //法三:N&(N-1)计算二进制位中1的个数
        int res=0,val=x^y;
        while(val!=0)
        {
            res++;
            val&=val-1;
        }
        return res;
    }
};
发布了63 篇原创文章 · 获赞 3 · 访问量 1720

猜你喜欢

转载自blog.csdn.net/qq_34405401/article/details/103062961