首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

(a+b)/二 = a&b + (a^b)>>1 求解释

2013-11-20 
(a+b)/2 a&b + (a^b)1求解释如题/*mid (first+last)/2*/ /*注意防止溢出*//*mid first/2 + last/

(a+b)/2 = a&b + (a^b)>>1 求解释
如题
                /*mid = (first+last)/2;*/ /*注意防止溢出*/
                /*mid = first/2 + last/2;*/
                /*mid = ((first & last) + (first ^ last) >> 1);*/
                mid = ((first & last) + ((first ^ last) >> 1));    /*修正上一句优先级错误*/ C语言 位运算
[解决办法]
没啥可解释的,二进制基本运算而已,先求相同部分,再把不同部分除2就是中值了
举例来说,111和101求中值,首先分成(101+101)+(10),然后除以2就是(101)+(10>>1)

热点排行