python中常见的进制转换怎样做,方法是什么
Admin 2022-08-25 群英技术资讯 1485 次浏览
这篇文章主要介绍了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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
前言在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、python type()(数据类型)和valu
坐标轴对数据可视化效果有着直接的影响。坐标轴的刻度范围过大或过小、刻度标签过多或过少,都会导致图形显示的比例不够理想。本节将对坐标轴的刻度、刻度范围和刻度标签的设置进行讲解。
这篇文章主要为大家介绍了python区块链地址的简版实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
python脚本执行的3种方法:方法一:交互模式直接执行语句方法二:通过脚本输出方法三:脚本中指定 python 路径,修改文件为可执行文件
lambda 函数是一个匿名函数(即,没有名称定义),它可以接受任意数量的参数,但与普通函数不同,它只计算并返回一个表达,Python 中的 lambda 函数使用以下语法表达:
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008