//在不使用临时变量的情况下交换a b的值。
int main()
{
int a = 30;
int b = 10;
b = b ^ a;
a = b ^ a;
b = a ^ b;
printf("%d %d", a, b);
return 0;
}
//求一个整数在内存中的二进制中1的个数
//高明的算法
//
int count(int n)
{
int count = 0;
while (n)
{
n = n & (n - 1);
count++;
}
return count;
}int main()
{
int sum = 0;
scanf("%d", &sum);
int n = count(sum);
printf("%d", n);return 0;
}
//求一个数的二进制位中的奇数位上的数和偶数位上的数
int main()
{
int n = 0;
scanf("%d", &n);
int m = n;
printf("奇数位:");
while (n)
{
int tmp = n % 2;
printf("%d ", tmp);
n = n >> 2;
}
printf("\n偶数位:");
m = m >> 1;
while (m)
{
int tmp = m % 2;
printf("%d ", tmp);
m = m >> 2;
}
}
//求两个数二进制编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
//输入例子:
//1999 2299
//输出例子 : 7
int main()
{
int m = 0;
int n = 0;
scanf("%d%d", &n, &m);
int count = 0;
int sum = m ^ n;
while (sum)
{
sum &= sum - 1;
count++;
}
printf("%d", count);
return 0;
}





