C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?((x^ y) >> 1) + (x & y);/*(x^y)>> 1得到x,y其中一个为1的位并除以2,x&y得到x,y都为1的部分,加一起就是平均数了*/求大神指点

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/17 17:30:04
C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?((x^y)>>1)+(x&y);/*(x^y)>>1得到x,y其中一个为1的位并除以2,x&y得到x,y都为1的部分,加一起就是平均数了*

C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?((x^ y) >> 1) + (x & y);/*(x^y)>> 1得到x,y其中一个为1的位并除以2,x&y得到x,y都为1的部分,加一起就是平均数了*/求大神指点
C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?
((x
^ y) >> 1) + (x & y);
/*(x^y)
>> 1得到x,y其中一个为1的位并除以2,x&y得到x,y都为1的部分,加一起就是平均数了*/
求大神指点

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的部分.
然后考虑不同的部分
^按位异或 若参加运算的两个二进制位值相同则为0,否则为1.对应位不同可以确定其中一个是1另一个是0 二者相加还是1.所以,x^y得出了x和y所有不同位相加的结果.(x^y)>>1右移动1位相当于除2,再加上相同的部分即x&y就得出了均值.

C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?((x^ y) >> 1) + (x & y);/*(x^y)>> 1得到x,y其中一个为1的位并除以2,x&y得到x,y都为1的部分,加一起就是平均数了*/求大神指点 如何简便计算,例13.2-5.47+13.2 不好意思,我还想请问,为什么要这样算呢,有没有什么待定的运算法则,例如:a+b+c=a+(b+c),注意是有加减在一起的题目,在什麼情况下,才可以运用简便算法。 用过氧化氢制氧气,除了用二氧化锰作催化剂,还可以用以下哪一个:锰酸钾,氯化钾,木炭,硫酸铜溶液 细菌总数 计算方法菌落平均数直接代入公式,菌落数为一个,算出后值为什么那么高呢?算法是否正确? 判断a,b,c能否构成三角形,判断条件语句可以用以下吗?a+b>c,a-b 为什么平均数大于中位数呢? 用以下哪一种物质处理人的红细胞可以发生溶血现象A清水 B0.9%食盐溶液C.1.5%蔗糖溶液D.0.85%食盐溶液答案是A.为什么D不行. 平均数有哪几种算法 为什么镜子可以反射阳光?用以块镜子,将阳光照到镜子里,为什么可以把阳光照到别处呢? 孟母三迁可以用以成语来说理它可以用以成语来说理,这个成语是?帮下 求平均数问题如题:我要算10,20,30的平均数可否先算10和20的平均数,15然后算15和30的平均数,.最后得出三者的平均数.可是结果为什么和10 20 30相加除以3的平均数不一样.请问我的算法哪里错了. 甲乙两数的平均数是73.5,乙丙两数的平均数是123,甲丙两数的平均数是66,求甲.乙.丙三数的平均数.我可以加20-100积分,列出算式!为什么除以2呢?说出来的奖! 两个总体的平均数不相等,标准差相等,则A平均数大,代表性大 B平均数小,代表性大C两个总体平均数代表性相同 D无法判断答案选的是A为什么呢 为什么要这么算呢?极简单限的算法分哪几种?而且,为什么等于2呢? 组合英文名:用以下字母起一个英文名字C、Z、E、L、I、H、O、U.尽量都用上.最好有详细介绍~上述字母可以重复~ 苯(水),为了除去括号内的物质,可以用以下的哪种试剂或方法?A.硫酸B.溴水C.分液D.过滤 C语言:什么叫结构化的算法?为什么要提倡结构化的算法?本人初学者还望多多指点. 有道金融的题目 大神请进一个1000年的ordinary annual annuity的present value为什么可以用算perpetuity 的算法算出来呢?