题解 | #两个整数二进制位不同个数#
两个整数二进制位不同个数
https://www.nowcoder.com/practice/16e48900851646c0b2c6cdef9d7ea051
#include <stdio.h> int main() { int a, b, c, d, count = 0, n = 32; scanf("%d %d", &a, &b); while (n)//整数占4个字节,就是32个比特位,所以从32开始 { c = a & 1; //a,b与1并,a与b的最后一位相同,救是相当&1之后相同 d = b & 1; if (c != d)//判断c的最后比特位与d的最后比特位是否相等 { count++; } a = a >> 1;//将其向右移动一位,再继续判断 b = b >> 1; n = n - 1; } printf("%d", count); return 0; }