今天发现很早之前看的一篇文章,发现好有意思。
三个数相加只用一个加号
(a^b^c) + (((a&b) | (a&c) | (b&c)) << 1)
用的是二进制的算法
同样的方式计算两个数相加是
(a^b)+((a&b)<<1)
这里相关的还有运算符的优先级
今天发现很早之前看的一篇文章,发现好有意思。
三个数相加只用一个加号
(a^b^c) + (((a&b) | (a&c) | (b&c)) << 1)
同样的方式计算两个数相加是
(a^b)+((a&b)<<1)