2
/不用(a+b)/2求平均值/
#include<stdio.h>
int main()
{
int a=10;
int b=20;
int average=a+(b-a)/2;
int average=a+((b-a)>>1);
int average=(a&b)+(a^b)>>1;
printf(“%d\n”,average);
return 0;
}
/*利用“位与”和“异或”来实现。如果数字相同,“位与”会得到一样的数字,不同则会得到差数
例如1001和1100
会得到1010.1*/