python中常见的进制转换怎样做,方法是什么
Admin 2022-08-25 群英技术资讯 896 次浏览
这篇文章主要介绍了python中常见的进制转换怎样做,方法是什么相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中常见的进制转换怎样做,方法是什么文章都会有所收获,下面我们一起来看看吧。其中比较常用到的是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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
内容介绍双Y轴图简介实现思路实现代码样式一样式二双Y轴图简介双Y轴图顾名思义就是在一个图里有两个Y轴。这种图形主要用来展示两个因变量和一个自变量的关系并且两个因变量的数值单位还不同。如我们想要展示不同
这篇文章主要为大家介绍了Python Map 函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
这篇文章主要介绍了Python Socket编程的相关资料,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
最近项目中需要处理和分析NC数据,所以下面这篇文章主要给大家介绍了关于python读取nc数据并绘图的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
这篇文章主要介绍了Python基础之操作MySQL数据库,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008