1. 进制转换
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
核心代码:(目前只可以用于2-9进制转换)
def test(num, j):
ret = []
while True:
m = num % j
ret.insert(0, str(m))
num = num // j
if num == 0:
break
return ''.join(ret)
if __name__ == '__main__':
print(test(1000, 2))
核心代码: 可以接受2-36位进制转换
import string
def get_unit_dict():
ret = {}
for ind, val in enumerate(list(string.digits + string.ascii_lowercase)):
ret[ind] = val
return ret
def hc(num, j):
# 2 - 36 进制
if not isinstance(j, int):
raise ValueError("类型错误")
if j < 2 or j > 36:
raise ValueError("进制只能是2-36")
unit_dict = get_unit_dict()
ret = []
while True:
n = num % j
ret.insert(0, unit_dict[n])
num //= j
if num == 0:
break
return "".join(ret)
if __name__ == '__main__':
print(hc(10000, 36))