题解 | #两个整数二进制位不同个数#

两个整数二进制位不同个数

https://www.nowcoder.com/practice/16e48900851646c0b2c6cdef9d7ea051

#include <stdio.h>

int main() {
    int a, b;
    scanf("%d%d",&a,&b);
    int count = 0;
    int c = a ^ b;//a与b异或,c二进制位有几个1,a与b的二进制位就有多少不同位
    while(c)
    {
        count++;
        c = c & (c - 1);//这段代码,每执行一次,c的二进制位的1就从右到左少一位,直至c为0停止循环
    }
    printf("%d\n",count);
    return 0;
}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务