给定两个正整数 a 和 b,使用二进制操作符而不是加法操作符来计算它们的和。
输入样例:
a = 105,b = 201
输出样例:
306
算法思路:
- 方法一:从低位到高位逐一计算每个bit相加之后的结果。
- 当两个bit都是1时,使用 & 操作符可以得到进位bit值。否则,使用 ^ 操作符可以得到两个bit的和。
- 进位bit的值使用左移操作符<<可以继续和下一个bit来计算。
- 方法二:使用^ 操作符得到两位数值不包含同位bit都是1的相加之和 A。使用& 操作符加左移操作符<<得到进位数值 B。如果进位数值B为零,则返回前面的相加之和A,否则用A和B重复上述操作,直到B为零。