趣味python(022)

十进制相加 转化为二进制 的计算

今天 小编 学习了关于二进制的用法。

大体思路是 :

输入: 两个整数
输出: 存储二进制的列表

bin 转化为二进制,`

a = bin(A).replace('0b', '')

除去’0b’ 转化为 只含有数字的字符串,

注意 a,b 列表中 含有的每个元素都是 字符串 格式 需要进行转化为 int类型 用到了map函数
	a = list(a)
	b = list(b)
	# 注意 a,b 列表中 含有的每个元素都是 字符串 格式
	# 需要进行转化为 int类型 用到了map函数
	a = list(map(int,a))
	b = list(map(int,b))

因为 接收到的两个数值 转换后的 二进制的位数可能不一样,需要进行 比较和判断,然后再添加0来凑位数,不过前提是 需要进行一下倒序。因为 二进制中 左边的位数比较高。

while alen < blen:
		a.append(0)
		alen += 1
	while alen > blen:
		b.append(0)
		blen += 1

下面直接上代码:

def binary(A, B):
	a = bin(A).replace('0b', '')
	b = bin(B).replace('0b', '')
	a = list(a)
	b = list(b)
	a = list(map(int,a))
	b = list(map(int,b))
	print("列表a:" + str(a))
	print("列表b:" + str(b))
	alen = len(a)
	blen = len(b)
	a.reverse()
	b.reverse()
	while alen < blen:
		a.append(0)
		alen += 1
	while alen > blen:
		b.append(0)
		blen += 1
	c = list(map(lambda x,y: x + y, a,b))
	print(c)
	print("相加后的c序列:" + str(c))
	clen = len(c)
	for a,b in enumerate(c):
		if b == 2 and (a+1)<clen:
			c[a] = 0
			c[a+1] += 1
		elif c[clen - 1] == 2 and a == (clen-1):
			c[a] = 0
			c.append(1)
	c.reverse
	print("最终的c结果:{} ".format(c))



binary(10, 23)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值