python中常见的进制转换怎样做,方法是什么
Admin 2022-08-25 群英技术资讯 463 次浏览
其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将10进制转换为其他的进制,常见的是二进制、十进制、八进制、十六进制之间的转换,其中遵循一个原则是:
其他进制转为十进制使用int函数,其他进制转为二进制使用bin函数,其他进制转为八进制使用oct函数,其他进制转为十六进制转为hex函数,并且是借助于10进制作为中间的桥梁进行转换,也就是使用到int()函数,
并且转换为对应的权重之后对应的字符串会有相应的前缀,二进制前缀为0b,八进制前缀为0o,十六进制前缀为0x
2进制 | 8进制 | 10进制 | 16进制 | |
2进制 | - | bin(int(input(),8)) | bin(int(input(),10)) | bin(int(input(),16)) |
8进制 | oct(int(input(), 2)) | - | oct(int(input(),10)) | oct(int(input(),16)) |
10进制 | int(input(),2)) | int(input(),8) | - | int(input(),2) |
16进制 | hex(int(input(), 2)) | hex(int(input(),8)) | hex(int(input(),10)) | - |
使用内置函数的时候反正是转换为哪一个进制就使用一个进制对应的函数即可,中间需要先转换为十进制(int()函数),其中进制转换涉及到的内置函数有:2进制:bin(),8进制:oct(),10进制:int(),16进制:hex()
if __name__ == '__main__': # input接收到的是字符串, 使用int函数定义输入的是什么进制的字符串转换为10进制数字 print(bin(int(input(), 16))) print(int(input(), 10)) print(oct(int(input(), 10))) print(hex(int(input(), 10)))
在format中加上b,o,x将其他进制的转换为二进制、八进制或者是十六进制
if __name__ == '__main__': print("{:b}".format(int(input(), 8))) print("{:o}".format(int(input(), 8))) print("{:x}".format(int(input(), 8)))
class Solution: # 将十进制数字转换为任意的进制(1-16) def decimalToAny(self, decimal: int, x: int): remainder = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"] # 当n大于0的时候执行循环 res = "" while decimal: res = remainder[decimal % x] + res decimal //= x return res if __name__ == '__main__': decimal, x = map(int, input().split()) print(Solution().decimalToAny(decimal, x))
class Solution: # 快速幂: x ** n def quickPower(self, x: int, n: int): res = 1 while n > 0: if n % 2 == 1: res *= x x *= x n //= 2 return res def anyToDecimal(self, s: str, base: int): n = len(s) res = 0 for i in range(n): # 数字, ord函数获取字母的ascii值 if "0" <= s[i] <= "9": res += (ord(s[i]) - ord("0")) * self.quickPower(base, n - i - 1) # 16进制数字对应的权重 elif "a" <= s[i] <= "f": res += (ord(s[i]) - ord("a") + 10) * self.quickPower(base, n - i - 1) else: res += (ord(s[i]) - ord("A") + 10) * self.quickPower(base, n - i - 1) return res if __name__ == '__main__': li = input().split() print(Solution().anyToDecimal(li[0], int(li[1])))
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python 如何查看程序内存占用情况,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了python 中的requirements.txt文件的使用详情,文章围绕主题展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
Python模块对Redis数据库的连接与使用讲解,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
这篇文章主要介绍了python多进程及通信实现异步任务需求,本人也是很少接触多进程的场景,对于python多进程的使用也是比较陌生的。在接触了一些多进程的业务场景下,对python多进程的使用进行了学习,觉得很有必要进行一个梳理总结,感兴趣的朋友一起看看吧
本文主要介绍了PyTorch 使用torchvision进行图片数据增广,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008