python3各进制转换

简介:
python整数(int类型)也能用2、8、16进制表示,作为一般的以10为基数的补充:
python3各进制转换
这些都是整形常量,注意不是字符串哦。
而下面有一些函数用于10进制和其他进制相互转换,如下:
(1)10-2、8、16:bin(3)==’0b11’,oct(10)==’0o12’, hex(17)==’0x11’,注意这三个函数的参数需要的是10进制整数,结果是2、8、16进制对应的字符串形式
(2)2、8、16-10:int(’ 0b11’,2) ==3,int(‘0o12’,8)==10,int(‘0x11’,16)==17
0b11、0o12、0x11不能直接转化为10进制整数,int函数第一个参数要穿各进制的字符串格式,返回的结果是10进制整数int,且第一个参数要和第二个参数对应起来,不然就会报错如int(‘0x11’,2)
(3)二进制、八进制、十六进制:分别是数字0加上字母b、o、x,大小写均可。

(4)eval函数可以执行字符串:
eval(’ 0b11’) ==3,eval(‘0o12’)==10,eval(‘0x11’)==17

1.进制转换
进制转换一般来说就是2、8、10、16进制的转换,思路是首先要学会,10进制和其他进制的相互转换,10-》2;10-8;10-16及2-》10;8-》10;16-》10
在python中10-》2;10-8;10-16分别用内置函数bin();oct();hex()实现,后面
2-》10;8-》10;16-》10用int()函数配合相应的参数来实现;
1)十进制–》其他进制
bin(number)–>’0b…’
oct(number)–>’0o…’
hex(number)–>’0x…’
这里的参数只能是整数,是int型,而后面转换成的其他进制数是字符串类型的,前面是’0’标志(是数字0):bin(25)=’0b11001’;oct(25)=’0o31’; hex(25)=’0x19’
注意:整型–》字符型

2)其他进制–》十进制
int(‘0b…’,2)–>10进制数据
int(‘0o…’,8)–>10进制数据
int(‘0x…’,16)–>10进制数据
第一个参数的标志0b、0o、0x要与第二个参数对应起来
注意:字符型–》整型

3)非10进制类型之间转换(已10进制为中间桥梁,但是要注意数据类型)
8进制=>16进制《=====》8进制=》10进制=》16进制
hex(int(‘0o162’,8))
16进制=>2进制《=====》16进制=》10进制=》2进制
bin(int(‘0xf92’,16))

4)bin()、oct()具体实现代码
python3各进制转换