python中常见进制之间的转换方式是什么
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍"python中常见进制之间的转换方式是什么"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python中常见进制之间的转换方式是什么"文章能帮
千家信息网最后更新 2025年01月16日python中常见进制之间的转换方式是什么
这篇文章主要介绍"python中常见进制之间的转换方式是什么"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python中常见进制之间的转换方式是什么"文章能帮助大家解决问题。
1. 很多情况下需要进行不同进制之间的转换
其中比较常用到的是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)))
2. 第二种是使用format函数进行转换
在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)))
3. 手动转化
10进制转换为其他进制代码
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))
其他的进制转为10进制代码
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])))
关于"python中常见进制之间的转换方式是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
进制
函数
之间
常见
字符
二进制
八进制
前缀
十六进制
十进制
字符串
数字
十进
方式
时候
知识
不同
代码
权重
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库中的冗余数据是指
软件开发年度总结存在问题
剑网2服务器
万能数据库
《护苗?网络安全课》
数据库的最新发展趋势有哪些
软件开发agile
k8数据库
互联网科技最好的公司
华勤应用软件开发工程师
软件开发工具2017真题
本地建mysql数据库表
河北特种网络技术市场价
互联网金融科技的资金成本
roblox越狱私人服务器
网络技术行业财务指标
通信运营商疫情期间网络安全
系统无法与服务器建立安全连接
数据库数字符串怎么取
dhcp服务器ip地址分配方式
怎么看服务器面板
车牌识别系统服务器画面
小学生网络安全利与弊
广东联想服务器续保一年多少钱
录入数据库的数据图怎么画
我的世界服务器打盖亚服务器就蹦
二手服务器让进口吗
kv分组数据库
教师数据库 内容
明日之后四字服务器是哪个版本