输入两个正整数A和B(16进制形式表示,计算这两个数相比较有多少个bit不同)
(A、B的类型都是32位无符号整数)
/*输入两个正整数A和B(16进制形式表示,计算这两个数相比较有多少个bit不同)
(A、B的类型都是32位无符号整数)
【比较不同的位数】
-输入说明:两个正整数,16进制形式输入,中间空格隔开。
-输出说明:这两个数的二进制表示中不同bit的个数。
-输入样例:1f 15
-输出样例:2
*/
#include <stdio.h>
unsigned int HexadecimalDecimal(unsigned int x, unsigned int y)
{
unsigned int num = 0;
unsigned int count = 0;
num = x ^ y;
while (num > 0)
{
if (num & 1)
{
count++;
}
num >>= 1;
}
return count;
}
int main()
{
unsigned int x, y;
unsigned int m = 0;
scanf("%x %x", &x, &y);
m = HexadecimalDecimal(x, y);
printf("%d\n", m);
return 0;
}