1 #include<stdio.h>
2
3 int f(int a,int b)
4 {
5 return (a&b)+((a^b)>>1);//相同部分+(不同部分除以2)
6 }
7
8 int main()
9 {
10 printf("%d\n",f(457,270));
11 return 0;
12 }
2
3 int f(int a,int b)
4 {
5 return (a&b)+((a^b)>>1);//相同部分+(不同部分除以2)
6 }
7
8 int main()
9 {
10 printf("%d\n",f(457,270));
11 return 0;
12 }
本文介绍了一种使用位运算来计算两个整数的平均值的方法。通过按位与和按位异或操作,结合右移一位,实现了无需加法运算即可得到两数的平均值。给出的C语言代码示例清晰地展示了这一算法的具体实现。
3792

被折叠的 条评论
为什么被折叠?



