两个int(32位)整数m和n的二进制表达式中,求有多少不同位数
#include<stdio.h>
#include<stdlib.h>
int number_of_one(int num)//计算一个二进制数中1的个数
{
int i = 0;
int key = 0;
for (i = 0; i < 32; i++)
{
key += num & 0x00000001;
num >>= 1;
}
return key;
}
int main()
{
int m = 0;
int n = 0;
int apple = 0;
int ret;
printf("请输入两个比较的数:\n");
scanf("%d %d", &m, &n);
apple = m^n;
ret=number_of_one(apple);
printf("共有%d个1\n", ret);
system("pause");
return 0;
}
计算一个二进制中数的个数函数
int number_of_one(int num)
{
int i = 0;
int n = 0;
for (i = 0; i < 32; i++)
{
n += num & 0x00000001;
num >>= 1;
}
return n;
}
转载于:https://blog.51cto.com/10797127/1711251