程序员面试宝典中(x&y)+((x^y)>>1)的结果分析:
首先先看看数据的三种对应情况
1) 0 与 0对应
2) 0 与 1对应
3) 1 与 1对应
所以得到
1、是x,y对应位都是1,既1&1 = 1,,也就是(x+y)/2;
2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算这些位的和,>>1相当于除2;
3、是x,y中对应位均为0,无须计算。
程序员面试宝典中(x&y)+((x^y)>>1)的结果分析:
首先先看看数据的三种对应情况
所以得到
1、是x,y对应位都是1,既1&1 = 1,,也就是(x+y)/2;
2、是x,y中对应位有且只有一位是1,用(x^y)相当于计算这些位的和,>>1相当于除2;
3、是x,y中对应位均为0,无须计算。