【面试题65 不用加减乘除做加法】
面试题65:不用加减乘除做加法:写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。
思路:位运算。
参考:面试题65. 不用加减乘除做加法(位运算,清晰图解)作者:jyd
class Solution:
def add(self
, a
: int, b
: int) -> int:
x
= 0xffffffff
a
, b
= a
& x
, b
& x
while b
!= 0:
a
, b
= (a
^ b
), (a
& b
) << 1 & x
return a
if a
<= 0x7fffffff else ~(a
^ x
)