两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?代码如下:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int count = 0;
printf("请输入a和b:\n");
scanf("%d%d", &a, &b);
while (a != 0 || b != 0){
//当其中一个数不为 0 就不终止循环
if ((a & 1) != (b & 1)){
count++;
}
a = a >> 1;
b = b >> 1;
}
printf("a和b中不同位的个数为:\n", count);
return 0;
}