飘飞的海

 

2012年10月1日

(x&y)+((x^y)>>1)

摘要: 很不错的思路,虽然不算高效,但如果在汇编中的话,这种方法可以不产生高位溢出。大概思路应该是这样:(x&y)+((x^y)>>1),把x和y里对应的每一位(指二进制位)都分成三类,每一类分别计算平均值,最后汇总。1、是x,y对应位都是1,用x&y计算其平均值;2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算机这些位的和,>>1相当于除2;3、是x,y中对应位均为0,无须计算。 阅读全文

posted @ 2012-10-01 16:55 飘飞的海 阅读(884) 评论(0) 推荐(0) 编辑

导航