func getSum(a int, b int) int {
for b != 0 {
// a表示不进位部分,b表示进位部分
// 没有进位表示计算完成
// 5 + 6 相当于 101 + 110 = 1011
// 不进位部分 011 相当于^ 进位部分 1000 相当于两个数都是1的最高位 进位
a,b = a ^ b,(a&b) << 1
}
return a
}
位运算计算两数之和
最新推荐文章于 2024-05-31 19:42:16 发布