作业标题
求两个数二进制中不同位的个数
作业内容
编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7
因为代码太少了,所以直接放代码:
#include<stdio.h>
int main()
{
//定义两个比较数
int a,b;
//两个比较数赋值
scanf("%d%d", &a, &b);
//定义计数数-计不一样的位数
int count = 0;
//定义循环数(左移数)
int i = 0;
//超出时直接退出,以免做无意义的运算。
while (!((1 << i) > a && (1 << i) > b))
{
//取出每一位对比
if ((a & (1 << i)) != (b & (1 << i)))
//不一样时,计数数++
count++;
//往左移一位
i++;
}
//打印出不一样的位数
printf("%d\n", count);
return 0;
}
求关注,求点赞