Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.
Example:
Given a = 1 and b = 2, return 3.
这本是一道简单的a+b求和问题,但是不准用到+
和-
,所以我们考虑使用位运算。
随便举个例子,例如在计算5+9时,不进位的话5+9=4,而5+9的进位为1,和就是1*10+4 = 14。同理放到二进制中也可以采用这样的方法
设有a = 4, b = 6
a 0100
b 0110
不进位和 0010=2
进位和 0100=4
然后有
2 0010
4<<1 1000
不进位和 1010=10
进位和 0000=0
当进位为0时,不进位和为10即a+b之和
Swift代码如下
|
|