Python栈的应用之二进制与十进制转换

本文介绍如何使用Python的栈数据结构来实现二进制与十进制之间的转换。通过示例代码详细阐述了转换过程,并展示了具体的结果。

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

示例:

233转为2进制:除2法,转8进制除8,转16进制除16
二进制数的尾:233//2=116  余1
				    116//2=58  余0
					 		58//2=29  余0
					 			  29//2=14  余1
					 			  		14//2=7  余0
					 			  			  7//2=3  余1
					 			  			  	   3//2=1  余1
二进制数的头:					 			  			1//2=0  余1
二进制数为头——>尾的余数,即:11101001

11101001转为10进制:
		1   1   1   0   1   0   0   1
下标		7   6   5   4   3   2   1   0
计算:1*2**7+1*2**6+1*2**5+0*2**4+1*2**3+0*2**2+0*2**1+1*2**0=128+64+32+0+8+0+0+1=233

完整代码:

# 二进制转换成十进制
def two_to_ten(s1):
	length = len(s1)
	s2 = s1[::-1]							#切片[开始:结束:步长],用作反转,并生成新值
	num = 0
	for i in range(length):
		num += int(s2[i])*2**i
	return num

# 定义栈类
class Stack(object):
     def __init__(self):							#初始化空栈
         self.items = []

     def isEmpty(self):								#是否为空
         return self.items == []

     def push(self, item):							#在最后添加一个元素
         self.items.append(item)

     def pop(self):									#删除最后一个元素
         return self.items.po
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值