- /*
- * 1、x & y,求两个数的二进制下的相同位的和的一半:
- * eg : 1 & 1 = 1; 0 & 0 = 0; 可以看出的确是一半
- * 2、x ^ y,求两个数的二进制下的不同位的和:eg: 1 ^ 0 = 1
- * 3、>> 1, 除以2
- * 4、所以整个表达式的结果就是将(x+y)/2
- */
- int func(int x, int y)
- {
- return (x & y) + ((x ^ y) >> 1);
- }
- //该片段来自于http://www.codesnippet.cn/detail/1812201411342.html
来源: http://www.codesnippet.cn/detail/1812201411342.html