要求:编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7
思路:如果你想到了用异或的方法,那么这道题目就成功了一大半啦,异或具体是指,相同为0,不同为1.一个数右移一位代表除2,左移一位代表乘2
//int Different_Bin(int value1, int value2)
//{
// int i;
// int count = 0;
// value1 ^= value2;
// for (i = 0; i < 32; i++)
// {
// if ((value1 >> i) & 1 == 1)
// {
// count++;
// }
// }
//
//
// return count;
//
//}
//int main()
//{
// int num1, num2;
// printf("请输入两个整数:");
// scanf("%d %d", &num1, &num2);
// printf("%d", Different_Bin(num1, num2));
// system("pause");
// return 0;
//}