python中的二进制、八进制、十六进制的相互转换

简介: python中的二进制、八进制、十六进制的相互转换

1 二进制、八进制、十六进制 转到 十进制

使用int(str, n)即可完成二进制、八进制、十六进制十进制的转换:

  • str:是要转换的进制具体数,类型字符串
  • n:是要转换的进制,类型整型

1.1 二进制 转 十进制

  • int(str_b, 2)
>>> int('0101',2)
5
>>>

$$b0101=2^2+2^0=5$$

1.2 八进制 转 十进制

  • int(str_0, 8)
>>> int('24', 8)
20
>>>

$$024 = 2*8^1+4*8^0=20$$

转成十进制:其实就是相当于8进制对应的十位,和8进制对应的个位,然后相加在一起

1.3 十六进制 转 十进制

  • int(str_x, 16)
>>> int('0xf2', 16)
242
>>> int('0Xf2', 16)
242
>>>

$$0xa2 = 15*16^1+2 *16^0=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'
>>>
目录
相关文章
|
4月前
|
存储 Python
|
1月前
|
存储 Python
python二进制类型 (Binary Types)
【8月更文挑战第3天】
109 8
|
1月前
|
JSON 缓存 安全
Python pickle 二进制序列化和反序列化 - 数据持久化
Python pickle 二进制序列化和反序列化 - 数据持久化
39 0
|
4月前
|
数据处理 Python
python进行二进制数据处理的方法
python进行二进制数据处理的方法
63 0
|
3月前
|
算法 Java Go
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
30 2
|
4月前
|
Python
python 二进制与字符编码详解
python 二进制与字符编码详解
38 0
|
4月前
|
Python
Python的整型在计算中的精度可以通过使用二进制或十进制表示来体现
【5月更文挑战第6天】Python整型支持十、二、八、十六进制表示,其中十进制默认,二进制(0b前缀)、八进制(0o前缀)、十六进制(0x前缀)。计算时以二进制精度处理,确保结果准确。例如:123的二进制是0b1111011,八进制是0o173,十六进制是0x7b。
29 0
|
4月前
|
数据可视化 Python
Python的分子模拟动态促进DF Theory理论对二进制硬盘系统的适用性
Python的分子模拟动态促进DF Theory理论对二进制硬盘系统的适用性
|
4月前
|
人工智能 机器人 测试技术
【python】python十进制转二进制(不使用内置方法)
【python】python十进制转二进制(不使用内置方法)
|
4月前
|
Python Java Go
Python每日一练(20230420) 数组逐位判断、交错字符串、二进制求和
Python每日一练(20230420) 数组逐位判断、交错字符串、二进制求和
65 0
Python每日一练(20230420) 数组逐位判断、交错字符串、二进制求和