使用位运算对两个数求和-Python代码

Posted 爽歪歪666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用位运算对两个数求和-Python代码相关的知识,希望对你有一定的参考价值。

题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路:
异或:求各位只和
与:计算进位
Python代码
 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     def Add(self, num1, num2):
 4         # write code here
 5         pos_sum = num1
 6         while num2:
 7             pos_sum = (num1^num2)& 0xffffffff
 8             num2 = ((num1&num2)<<1)& 0xffffffff
 9             num1 = pos_sum
10         if pos_sum <= 0x7fffffff:
11             return pos_sum
12         else:
13             return ~(pos_sum ^ 0xffffffff)
14         
15         
16         

note:

0xffffffff表示-1      1111 1111 1111 1111 1111 1111 1111 1111(第一个1是符号位)
0x7fffffff表示最大正数,0111 1111 1111 1111 1111 1111 1111 1111(0是符号位)
对0取反为-1,对1取反为-2

 

以上是关于使用位运算对两个数求和-Python代码的主要内容,如果未能解决你的问题,请参考以下文章

python输入两个数并求和

c语言简单求和,编写程序:输入两个数,求两个数的和

Python之运算符汇总

位运算和关于两个数交换的多种方法

位运算和关于两个数交换的多种方法

在Python中对具有不同运算符的列表求和