这个是比较简单的,一个整形有32位,可以通过比较每一位就可以实现有多少位不同。
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int i = 0;
int count = 0;
printf("请输如两个数:");
scanf("%d%d", &num1, &num2);
for (i = 0; i < 32; i++)
{
int temp1 = num1 % 2;
int temp2 = num2 % 2;
num1 /= 2;
num2 /= 2;
if (temp1 != temp2)
{
count++;
}
}
printf("%d", count);
return 0;
}