本文共 1276 字,大约阅读时间需要 4 分钟。
超过10进制的先不管了, 搞个十进制以下的,还是比较easy的:
#给定一个某进制的数,转换成另一个进制的数,10进制之内# 输入一个num,从s_decimal进制转成d_decimal,num,s_decimal,d_decimal都是int类型def decimal_convert(num,s_decimal,d_decimal): if s_decimal>10 or d_decimal >10: print('不能超过十进制') return ten_num=convert_to_ten(num,s_decimal) res=convert_from_ten(ten_num,d_decimal,convert_list=[]) return res#给定的进制转换成十进制def convert_to_ten(num,s_decimal): ten_num=0 str_num=str(num) length=len(str_num) for i in range(length): int_num=int(str_num[i]) ten_num+=int_num*s_decimal**(length-i-1) print(ten_num) return ten_num#十进制转换成指定进制def convert_from_ten(num,d_decimal,convert_list=[]): if num
16进制内:
# coding:utf-8hex_dict={ 0:'0', 1:'1', 2:'2', 3:'3', 4:'4', 5:'5', 6:'6', 7:'7', 8:'8', 9:'9', 10:'a', 11:'b', 12:'c', 13:'d', 14:'e', 15:'f',}def ten_to_other(num,target_num): if target_num>16 or target_num<2: return False final_str='' while num>=target_num: yu=num%target_num str_yu=hex_dict.get(yu) final_str=str_yu+final_str num=num//target_num last_num=hex_dict.get(num) final_str=last_num+final_str print(final_str) return final_strif __name__ == '__main__': ten_to_other(111,11)
转载地址:http://gdxws.baihongyu.com/