1 二进制、八进制、十六进制 转到 十进制
使用int(str, n)
即可完成二进制、八进制、十六进制
到十进制
的转换:
str
:是要转换的进制具体数,类型字符串
n
:是要转换的进制,类型整型
1.1 二进制 转 十进制
int(str_b, 2)
>>> int('0101',2)
5
>>>
b 0101 = 2 2 + 2 0 = 5 b0101=2^2+2^0=5 b0101=22+20=5
1.2 八进制 转 十进制
int(str_0, 8)
>>> int('24', 8)
20
>>>
024 = 2 ∗ 8 1 + 4 ∗ 8 0 = 20 024 = 2*8^1+4*8^0=20 024=2∗81+4∗80=20
转成十进制:其实就是相当于8进制对应的十位,和8进制对应的个位,然后相加在一起
1.3 十六进制 转 十进制
int(str_x, 16)
>>> int('0xf2', 16)
242
>>> int('0Xf2', 16)
242
>>>
0 x a 2 = 15 ∗ 1 6 1 + 2 ∗ 1 6 0 = 242 0xa2 = 15*16^1+2 *16^0=242 0xa2=15∗161+2∗160=242
注意:
上面的b、o、x
大写和小写都是可以的!!!
1.4 pyton中的二进制、八进制、十六进制在命令行中显示也都是以十进制显示的
>>> bin_num = 0b0101
>>> bin_num
5
>>> ord_num = 0o24
>>> ord_num
20
>>> hex_num = 0xf3
>>> hex_num
243
>>>
二进制、八进制、十六进制虽然写成各个进制的形式,但是本质上还是十进制的数:
>>> oct_num = 0o24
>>> oct_num
20
>>> res = oct_num * 3
>>> res
60
>>> type(oct_num)
<class 'int'>
>>>
2 十进制 转到 二进制、八进制、十六进制
2.1 十进制 转 二进制
-bin(int)
:十进制 转 二进制,返回值是二进制形式的字符串
>>> bin_num = bin(17)
>>> bin_num
'0b10001'
>>> type(bin_num)
<class 'str'>
>>>
2.2 十进制 转 八进制
oct(int)
:十进制 转 八进制,返回值是八进制形式的字符串
>>> oct_num = oct(17)
>>> oct_num
'0o21'
>>> type(oct_num)
<class 'str'>
>>>
2.3 十进制 转 十六进制
hex(int)
:十进制 转 十六进制,返回值是十六进制形式的字符串
>>> hex_num = hex(17)
>>> hex_num
'0x11'
>>> type(hex_num)
<class 'str'>
>>>
3 二进制、八进制、十六进制之间相互转换
二进制、八进制、十六进制之间相互转换
,只需要在十进制
作为过度一下即可!!!下面以二进制 转 十六进制
为例,其他一样!
3.1 二进制 转 十六进制
1、先把二进制转为十进制
int(str_b, 2)
>>> int('0b01011', 2)
11
>>>
2、再把十进制转为十六进制
- hex(int)
>>> hex(11)
'0xb'
>>>
3、合在一起写
hex(int(str_b, 2))
>>> hex(int('0b01011', 2))
'0xb'
>>>
参考:https://blog.csdn.net/weixin_43353539/article/details/89444838
参考:https://blog.csdn.net/u012063703/article/details/42609833
参考:https://blog.csdn.net/hmh4640219/article/details/112506803