常用的进制有二进制、八进制、十进制和十六进制。
1 四种进制简介
最常用的十进制基本原理是“逢十进一”,因此十进制包括的数字是“0-9”;同理,二进制的基本原理是“逢二进一”,包含的数字是“0-1”;八进制是“逢八进一”,包含的数字是“0-7”;十六进制是“逢十六进一”,包含的数字是“0-15”,其中用“A、B、C、D、E、F”分别表示“10-15”这五个数。
2 四种进制数的表示
对于一个数字“11”,可能是四种进制中的任何一种,其进制不同,对应的数值也不同。在Python中通过不同的前缀表示不同的进制,如表1所示。
表1 不同进制对应的前缀
进制 | 前缀 |
二进制 | 0b或0B |
八进制 | 0o或0O |
十进制 | 无前缀 |
十六进制 | 0x或0X |
所以,“0b11”表示二进制的11,其对应的十进制数是3;“0o11”表示八进制的11,其对应的十进制数是9;“0x11”表示十六进制的11,其对应的十进制数是17,如图1所示。
图1 不同进制的“11”表示不同的数值
3 十进制转换成二进制、八进制和十六进制的方法
3.1 十进制转换成二进制的方法
通过bin()函数可以将十进制的数字转换成二进制,代码如图2所示。
图2 十进制转换成二进制
从图2中可以看出,得到的结果是一个带前缀的字符串。如果得到不带前缀的结果,可以使用format()函数,代码如图3所示。
图3 得到不带前缀的结果
从图3中可以看到,format()的第一个参数表示要转换的数值,第二个参数’b’表示将第一个参数转换为二进制。
3.2 十进制转换成八进制的方法
通过oct()函数可以将十进制的数字转换成八进制,如果得到不带前缀的结果,可以使用format()函数,代码如图4 所示。
图4 十进制转换成八进制
其中,oct()得到的是一个带前缀的字符串;format()的第二个参数‘o’表示将第一个参数转换为八进制,结果为不带前缀的字符串。
3.3 十进制转换成十六进制的方法
通过hex()函数可以将十进制的数字转换成八进制,如果得到不带前缀的结果,可以使用format()函数,代码如图5 所示。
图5 十进制转换为十六进制
其中,hex()得到的是一个带前缀的字符串;format()的第二个参数‘x’表示将第一个参数转换为十六进制,结果为不带前缀的字符串。
4 二进制、八进制和十六进制转换为十进制的方法
使用int()函数可以将二进制、八进制和十六进制转换为十进制,代码如图6所示。
图6 二进制、八进制和十六进制转换为十进制
从图6中可以看出,int()函数的第一个参数表示要转换的数值,其类型为字符串,第二个参数表示进制数,得到的结果是转换后的十进制数值,类型是整型。