a&b +( (a^b)>>1)
a&b 即取了a和b相同的位数据
a^b 即取了a和b不同的位数据之和
>>1等价于除以2
举个的例子
a = 10, b = 6.
a 1010
b 0110
取相同的位为 0010,十进制为2
a-2 = 8
b-2 = 4
a^b = 1100 十进制为12 = a^b
a&b +( (a^b)>>1)
a&b 即取了a和b相同的位数据
a^b 即取了a和b不同的位数据之和
>>1等价于除以2
举个的例子
a = 10, b = 6.
a 1010
b 0110
取相同的位为 0010,十进制为2
a-2 = 8
b-2 = 4
a^b = 1100 十进制为12 = a^b