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.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
def ten_to_other(s1, base):
zhan = Stack()
num = ‘’
digits = “0123456789ABCDEF”
while s1 > 0:
zhan.push(s1 % base)
s1 = s1 // base
while not zhan.isEmpty():
num += digits[zhan.pop()]
return num
if name == ‘main’:
choose = input(‘二进制转换成十进制请输入2,十进制转换成其他进制请输入10:’)
if choose == ‘2’:
s1 = input(‘请输入二进制数:’)
print(two_to_ten(s1))
else:
s1 = int(input(‘请输入十进制数:’))
base = int(input(‘请输入待转换成的进制数:’))
print(ten_to_other(s1, base))
2021-06-29
最新推荐文章于 2021-11-09 20:10:55 发布