进制转化(python)(10进制转化为16以下)

class Stack:
    def __init__(self):#创建一个空栈
        self.items = []
    def isEmpty(self):#判断返回栈是否为空
        return self.items == []
    def push(self, item):#将一个item加入栈顶
        self.items.append(item)
    def pop(self):#将一个元素从栈顶删除,栈被修改
        return self.items.pop()
    def peek(self):#查看栈顶数据,但不对其做修改
        return self.items[len(self.items)-1]
    def size(self):#返回栈中的数据个数
        return len(self.items)
#详见10进制转换原理图片
#16进制数的输入与输出
# eighteen_numbers='0123456789ABCDEF'
# print(eighteen_numbers[10])
def transform(a):
    b=Stack()
    print('十进制数为',a)
    print('想转换为哪个进制数')
    c=input()
    c=int(c)
    eighteen_numbers = '0123456789ABCDEF'
    while a>0:
        b.push(a%c)
        a=a//c#//取整数的除法
    print('经过转换后的b',b.items)
    string=''
    while  not b.isEmpty():#一遍一遍从栈底得到新的数
        string=string+eighteen_numbers[b.pop()]

    return string
print(transform(109))





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值