编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
程序代码如下:
#include <stdio.h>
int count_diffrent_bits(int x, int y)
{
int i = 0;
int tmp =x ^ y;
int count = 0;
while (tmp)
{
tmp = tmp & (tmp - 1);
count++;
}
return count;
}
int main()
{
int m = 0;
int n = 0;
printf("请输入两个整数m,n:\n");
scanf("%d\n%d", &m, &n);
int ret = count_diffrent_bits(m, n);
printf("两个整数%d,%d有%d位不同\n", m, n, ret);
return 0;
}
程序运行结果如下:

本文介绍了一个简单的C语言程序,用于计算两个32位整数在二进制表示下不同的位数。通过按位异或操作并计数结果中1的数量来实现这一目标。
2690

被折叠的 条评论
为什么被折叠?



