棧的應用(進制轉換)

class Stack:
    def __init__(self):
        self.items=[]
    def isEmpty(self):
        return self.items==[]
    def push(self,item):
        #添加元素進站
        self.items.append(item)
    def peek(self):
        #打印棧頂元素
        return self.items[len(self.items)-1]
    def pop(self):
        #從棧頂取出元素
        return self.items.pop()
    def size(self):
        #返回棧中元素的個數
        return len(self.items)
#使用Python自帶庫
def divideByBase(decNumber,base):
    #進制轉換,base表明進制
    remstack=Stack()
    digits="0123456789ABCDEF"
    #十六進制數
    while decNumber>0:
        rem=decNumber%base
        #取餘
        remstack.push(rem)
        decNumber=decNumber//base
        #作除法取商,再次取餘

    binString=""
    while not remstack.isEmpty():
        binString=binString+digits[remstack.pop()]
    return binString

print(divideByBase(1783,16))
View Code
相關文章
相關標籤/搜索