class Stack:
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.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
def divideBy2(decNumber):
remstack=Stack()
while decNumber>0:
rem=decNumber%2
remstack.push(rem)
decNumber=decNumber//2
binString=""
while not remstack.isEmpty():
binString=binString+str(remstack.pop())
return binString
def baseConverter(num,base):
label="0123456789ABCDEF"
s=Stack()
while num>0:
re=num%base#不断取余基块
s.push(re)
num=num//base
#出栈
string=""
while not s.isEmpty():
string+=label[s.pop()]
return string
if __name__=='__main__':
num1=int(input("please input number:"))
print(str(num1),"对应的二进制是:",divideBy2(num1))
base=2
print(str(num1)+"对应的"+str(base)+"进制是:", baseConverter(num1,base))
base = 8
print(str(num1) + "对应的" + str(base) + "进制是:", baseConverter(num1, base))
base = 16
print(str(num1) +"对应的" + str(base) + "进制是:", baseConverter(num1, base))
这个代码不知道哪里出错了,为什么只能转化一位数,多位数的输进去就报错**
```
```**