摘要: intf(intx,inty){return((x&y)+(x^y)>>1);}一个函数如上所示,f(729,271)=?这个题目来源于程序员面试宝典P39,第五章5.5节,运算符问题。对于书中的解答并不满意。解答思路如下:有两种最简单的情况:1)x和y完全相同,那么f函数返回结果为(x&y)即x,刚好是两数均值 如x=1000,y=1000;2)x和y每位都不同,那么f函数返回结果为(x^y)>>1 如x=101,y=10; 这种情况下,x+y结果为111,刚好等于(x^y)右移一位等于除以2,所以也是两数的均值;其他情况无非是x和y部分位相同部分为不 阅读全文
posted @ 2012-04-06 16:57 子桥 阅读(1426) 评论(1) 推荐(0) 编辑