admin管理员组文章数量:1794759
用python写进制转换小程序
最近信课上有出进制转换的题目,上课就开始比心算
后来我就想能不能直接写一个程序来解决这个问题(虽然计算器上有这样的功能)
自己写的好处就是可以转换一些奇奇怪怪的进制而不局限于二进制八进制十六进制等
话不多说直接上代码
dict01 = {'a':'10','b':'11','c':'12','d':'13','e':'14','f':'15'} dict02 = {'10':'a','11':'b','12':'c','13':'d','14':'e','15':'f'} # digi = int(input("输入n进制 例如:2 暂时只支持2到16进制\\n")) # innum = input("输入数字 例如:1101 或者1eft(10对a,11对b以此类推 暂时只支持到16进制\\n") # digo =int(input("输入输出进制(支持2-16) 例如:8 \\n")) def turnto10(dig,num): numout = 0 if dig!=10: for i in range(len(num)): if num[-1-i] in dict01: numout += int(dict01[num[-1-i]])*(dig**(i)) else: numout+=int(num[-1-i])*(dig**(i)) elif dig ==10: numout=int(num) return numout def turnfrom10(num,dig): numout = [] numstr = str(num) if dig>10: while num != 0: if num % dig>9: numout.append(dict02[str(num%dig)]) else: numout.append(num%dig) num//=dig elif dig==10: for i in range(len(numstr)): numout.append(numstr[-1-i]) else: while num != 0: numout.append(num%dig) num//=dig return numout res = 'y' while res=='y': digi = int(input("输入n进制 例如:2 暂时只支持2到16进制\\n你的输入进制:")) innum = input("输入数字 例如:1101 或者12eff(10对a,11对b以此类推 暂时只支持到16进制\\n你的要求数字:") digo = int(input("输入输出进制(支持2-16) 例如:8 \\n你的输出进制:")) innum = turnto10(digi,innum) # print(innum) list_out =turnfrom10(innum,digo) print("答案:",end='') for i in range(len(list_out)): print(list_out[-1-i],end='') print("\\n") res = input('输入y继续,回车退出')程序思路就是先把数字处理成十进制再处理成其他进制
版权声明:本文标题:用python写进制转换小程序 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686576301a83678.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论