[Python进阶] 进制转换及相关

2.13 进制转换及相关

在Python中,默认的数据都是十进制的,其它进制的数字需要在数字前面加上特定的符号,用来加以说明。不同的进制表示的方式如下:
2进制:ob,例如:0b1010 → 10
8进制:0o,例如:0o12 → 10
10进制:10
16进制:0x,例如:0xa → 10,注意:十进制中,a-f全部小写。
如果设计进制转换,有一种最简单的办法,那就是用10进制作为中间进制,先将原进制转换成10进制,然后再转换成相应的目标进制。
这里介绍一下将其它进制转换成十进制的函数:int
int(x, base=10):x必须为字符串,返回的结果为将x作为base参数指定的进制数转换成十进制后的数。

from icecream import ic

ic(int('15', 8))  # 8进制下,0o10其实就是十进制下的13

18:05:12|> int(‘15’, 8): 13

然后再通过相应的函数将十进制的数转换成目标进制的数。例如:

from icecream import ic

# 将八进制下的15转换成二进制
ic(bin(int('15', 8)))

18:07:27|> bin(int(‘15’, 8)): ‘0b1101’

以下表格为转换关系(列所在进制转换成行所在进制)

←↓ 2进制 8进制 10进制 16进制
2进制 - bin(int(n,8)) bin(int(n,10)) bin(int(n,16))
8进制 oct(int(n,2)) - oct(int(n,10)) oct(int(n,16))
10进制 int(n,2) int(n,8) - int(n,16)
16进制 hex(int(n,2)) hex(int(n,8)) hex(int(n,10)) -

你可能感兴趣的:(Python进阶,#,二,Python入门,Python基础,Python,Python进阶)