这是python实现十进制转换二进制的进阶版:
步骤与转化为二进制相似:
1、十进制除整数
2、余数压栈
3、顺序出栈
# 十进制转其他进制
def baseConverter(number, base):
digits = '0123456789ABCDEF'
srem = []
# 1 2两步 除整数,余数压栈
while number > 0:
rem = number % base
srem.append(rem)
number = number // base
newstring = ''
# 第3步 顺序出栈
while len(srem) > 0:
newstring = newstring + digits[srem.pop()]
print(newstring)
baseConverter(233, 16)
注意:
1、十进制整除整数:与转化二进制不同的是,函数接受两个参数,一个是待转化的十进制整数,一个是希望转换的进制数
2、余数压栈:设置一个digits字符串,存储’0123456789ABCDEF’,字母来表示超过9的余数,将得到的余数压栈
3、顺序出栈:出栈时不同,这里用()当做digits的下标。newstring = newstring + digits[()] 二进制简易版是直接将出栈的结果转化为字符串