C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?

C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?

题目
C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?
((x
^ y) >> 1) + (x & y);
/*(x^y)
>> 1得到x,y其中一个为1的位并除以2,x&y得到x,y都为1的部分,加一起就是平均数了*/
求大神指点
答案
x和y对应位有2种情况:相同或者不相同.求平均数只需要把不同的部分相加除以2再加上相同的部分就行了.首先考虑相同的部分,同为0没有用,x&y得出了同为1的部分.然后考虑不同的部分^按位异或 若参加运算的两个二进制位值...
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.