大家好,又见面了,我是你们的朋友全栈君。
python进制转换函数
一.通过int函数实现其他进制转十进制
假设 M 为某已知进制字符串 n 的进制数
result = int(n,M)
-------------------------------------------------------------------------------------------
>>> result = int('10101',2)
>>> result
>>> 21
result 为 转换为的十进制结果。
二.十进制转特定进制函数
假设q 为某十进制数(非字符串)python中的int类型的数据就是10进制
result = bin(n) #十进制转二进制
result = oct(n) #十进制转八进制
result = hex(n) #十进制转十六进制
-------------------------------------------------------------------------------------------
>>> (bin(1234))
>>> '0b10011010010'
注意:当使用上述三个转换为2,8,16进制时,转换后的结果都会带有字段为2 的前缀(二进制对应‘0b’,八进制对应‘0o’,十六进制对应‘0x’)此时我们需要对字符串进行切片,得到不带前缀的结果。即:
>>> result = bin(1234)[2:]
>>> result
>>> '10011010010'
三.两种方式嵌套实现以十进制为桥梁的2,8,16进制转换
Eg:二进制转八进制:
a = '10101'
result = oct(int(a,2))[2:]
其他情况类似。
四.十进制转其他进制的通法
以十进制转十五进制为例:
def transform(n,m = 15): #n为待转换的十进制数,m为要转换成的进制数
str_ = ''
trans = [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e'] #列表trans中的元素个数与转换后的进制数相同
remainder = [] #用于储存余数
while n>0:
x = n % m
remainder.append(x)
n = n//m
remainder.reverse() #模拟手算进制转换时的倒写
for item in remainder:
str_ += str(trans[item])
return str_
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144350.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...