参考自:http://www.cnblogs.com/zhy128/p/8278577.html
-
Python中实现的进制间的转换
-
在python中可以使用Python的内置函数进行进制间的转换。
- bin():其他进制转二进制
- oct():其他进制转八进制
- int():其他进制转十进制
- hex():其他进制转十六进制
-
二进制、八进制、十六进制的形式
- 二进制:以“0b”开头,如:0b111为十进制的7
- 八进制:以“0”开头,如:026为十进制的22
- 十六进制:以“0x”开头,如:0x1f为十进制的31
二进制、八进制、十六进制对照表
十进制 | 二进制 | 八进制 | 十六进制 | * | 十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|---|---|---|---|---|
00 | 0b0000 | 000 | 0x0 | * | 08 | 0b1000 | 010 | 0x8 |
01 | 0b0001 | 001 | 0x1 | * | 09 | 0b1001 | 011 | 0x9 |
02 | 0b0010 | 002 | 0x2 | * | 10 | 0b1010 | 012 | 0xa |
03 | 0b0011 | 003 | 0x3 | * | 11 | 0b1011 | 013 | 0xb |
04 | 0b0100 | 004 | 0x4 | * | 12 | 0b1100 | 014 | 0xc |
05 | 0b0101 | 005 | 0x5 | * | 13 | 0b1101 | 015 | 0xd |
06 | 0b0110 | 006 | 0x6 | * | 14 | 0b1110 | 016 | 0xe |
07 | 0b0111 | 007 | 0x7 | * | 15 | 0b1111 | 017 | 0xf |
二进制、八进制、十六进制转十进制
使用int()函数,第一个参数是要转换的数字,类型为字符串,第二个参数是该数几进制的数,转化结果为一个十进制的数。
二进制转十进制:
>>> int(‘0b1111’,2)
15
八进制转十进制:
>>> int(‘67’,8)
55
十六进制转十进制:
>>> int(‘0x1f’,16)
31
八进制、十进制、十六进制转二进制
使用bin()函数,需要先将八进制、十六进制转换为十进制,然后才能转换为二进制,即八进制/十六进制 —> 十进制 —> 二进制
八进制转二进制:
>>> bin(int(‘016’,8))
‘0b1110’
十进制转二进制:
>>> bin(14)
‘0b1110’
十六进制转二进制:
>>> bin(int(‘0xe’,16))
‘0b1110’
二进制、十进制、十六进制转八进制:
使用oct()函数可以直接进行进制的转换
二进制转八进制:
>>> oct(0b1110)
‘016’
十进制转八进制:
>>> oct(14)
‘016’
十六进制转八进制:
>>> oct(0xe)
‘016’
二进制、八进制、十进制转十六进制:
使用hex()函数,需要先将二进制、八进制转换为十进制,然后才能转换为十六进制,即二进制/八进制 —> 十进制 —> 十六进制
二进制转十六进制:
>>> hex(int(‘0b1110’,2))
‘0xe’
八进制转十六进制:
>>> hex(int(‘016’,8))
‘0xe’
十进制转十六进制:
>>> hex(14)
‘0xe’