#include<stdio.h>
#include<windows.h>
int main()
{
int num1=10;
int num2=20;
int avg=((num1&num2)+(num1^num2))>>1;
printf("%d\n",avg);
system("pause");
return 0;
}
在求平均值时用两数相加除二的方法若两个数都是三十二位的相加就会有可能导致数据溢出,然而利用此方法就可以避免此问题,具体如下:
然后输出的二进制就是15。