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.
分析:
摆明着要用位运算,那么很容易想到只有在这种情况下 101 ^ 010 = 111(即a&b=0),^操作符等价于+操作符
那么就把a拆开,分为 和b一样的部分和 以及 和b完全不一样的部分
思路:
用&操作符取出相同部分,而相同部分相加等价于左移操作符,用^直接把不同部分的结果加出来
1 | class Solution(object): |