python怎么使用二进制运算求两个数的和与差?
2021-07-20 16:04:10
浏览数 (3702)
在学习一些计算机基础知识的时候我们会学习到位运算。python既提供了将十进制数据转化为二进制数据的方法,又提供了位运算(二进制运算)的方法,今天小编就用python位运算来实现一个二进制运算求两数和差的算法。希望各位小伙伴看完后给小编点个赞。
以下是 在 python 中的利用函数求两个数的和与差
class Calculate:
def ——init——(self,number1,number2) # 接收两个参数
self.number1 = number1
self.number2 = number2
def he(self):
print("和是 : %d " % (self.number1 + self.number2)) # 进行格式化输出
def cha(self):
print("差是 : %d " % (self.number1 - self.number2))
result = Calculate(5,5) # 传递两个参数
result.he()
result.cha() # 调用函数进行求值
补充:python_写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
看代码吧~
'''
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
'''
# 利用异或以及与进位求解
# 不能一个正数一个负数
# 可能是python的的整型可以无限大的原因, 导致正数和负数的异或操作不断变成更小的负数而不会溢出
# # 使用Swift尝试了一下, 还是可以求得正数和负数的位操作相加运算的
# # -*- coding:utf-8 -*-
# class Solution:
# def Add(self, num1, num2):
# while num2:
# sum = num1 ^ num2
# carry = (num1 & num2) << 1
# num1 = sum
# num2 = carry
# return num1
# s = Solution()
# print(s.Add(4, 2))
# -*- coding:utf-8 -*-
# 通过每次对num1进行与操作保证是一个32位的整形
# 因此最后我们可以判断符号位是否为1做处理
class Solution:
def Add(self, num1, num2):
# write code here
while num2 != 0:
temp = num1 ^ num2
num2 = (num1 & num2) << 1
num1 = temp & 0xFFFFFFFF
# return num1 if num1 >> 31 == 0 else num1 - 4294967296 方法一
return num1 if num1 <= 0x7FFFFFFF else ~(num1 ^ 0xFFFFFFFF)
if __name__ == "__main__":
s = Solution()
print(s.Add(4, 2))
# print(countOne(7))
# print(countOne(8))
以上就是Python二进制运算求两数和差的代码实现,希望能给大家一个参考,也希望大家多多支持W3Cschool。