python用二进制实现十进制的加法运算

本文介绍了如何使用Python进行二进制加法运算,包括正数和负数的情况。通过详细步骤解释了二进制加法的原理,并探讨了在Python中处理负数补码的问题。同时,给出了Python位运算实现二进制加法的代码示例,讨论了Python3中可能出现的问题及其原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1原理

1.1 正数

十进制下:5 + 7 = 12

5: 0101

7: 0111

二进制下两数求和,分三步:

  1. 各位值相加,不算进位值,二进制亦或运算
  2. 计算进位值,二进制与运算,然后左移一位;
  3. 对1,2步的结果,重复以上两步骤

两数之和就是不计算进位值加上进位值,直到没有进位

第二部为什么要左移?

当你在十进制下计算5+7时,进位向前一位进1,也就是相当于左移

5 + 7的详细计算:

第一次:

亦或:0101^0111 = 0010,没有进位的值。

与:0101&0111 = 0101,等于1的位说明这一位是要产生进位的。而进位是要向前进一位,所以要左移

0101 ,两个位置为1,说明是有两个位置需要进位,左移运算,0101<<1 = 1010

第二次:

0010^1010 = 1000

(0010&&1010)<<1 = 0100 # 还有进位,需要继续加

第三次:

1000^0100 = 1100

(1000&&0100) <<1= 0000 # 没有进位

进位为0,返回第一步的结果。

1.2 负数

博客上好多教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值