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

本文介绍了如何使用Python内置函数实现二进制、八进制和十六进制到十进制的转换,以及反之的转换方法。通过实例展示了bin(), oct(), hex()函数及其应用,并强调了不同进制之间的相互转换策略。
摘要由CSDN通过智能技术生成

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=281+480=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=15161+2160=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

Python提供了内置函数来实现二进制八进制十六进制之间的转换。 1. 二进制八进制十六进制转换为十进制: - 使用`int()`函数,可以将二进制八进制十六进制字符串转换为十进制整数。 例如: ```python bin_num = '1010' # 二进制 oct_num = '12' # 八进制 hex_num = 'A' # 十六进制 dec_from_bin = int(bin_num, 2) # 将二进制转换为十进制 dec_from_oct = int(oct_num, 8) # 将八进制转换为十进制 dec_from_hex = int(hex_num, 16) # 将十六进制转换为十进制 ``` 2. 十进制转换二进制八进制十六进制: - 使用`bin()`, `oct()`, `hex()`函数,可以将十进制整数转换为对应的二进制八进制十六进制字符串。 例如: ```python decimal_number = 10 binary_string = bin(decimal_number) # 十进制转二进制 octal_string = oct(decimal_number) # 十进制转八进制 hexadecimal_string = hex(decimal_number) # 十进制转十六进制 ``` 3. 二进制八进制十六进制之间的相互转换: - 首先将源进制转换为十进制,然后将得到的十进制数转换为目标进制。 例如: ```python # 二进制八进制 bin_num = '1010' dec_num = int(bin_num, 2) # 二进制转十进制 oct_num = oct(dec_num) # 十进制转八进制 # 八进制十六进制 oct_num = '12' dec_num = int(oct_num, 8) # 八进制转十进制 hex_num = hex(dec_num) # 十进制转十六进制 # 十六进制二进制 hex_num = 'A' dec_num = int(hex_num, 16) # 十六进制转十进制 bin_num = bin(dec_num) # 十进制转二进制 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值