Python-不同进制之间转化

本文介绍了如何使用Python的基本函数进行十进制到二进制(bin)、八进制(oct)、十六进制(hex)以及反向的二进制(int(0b1100,2))、八进制(int(0o14,8))、十六进制(int(0xc,16))的转换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 十进制转二进制
print(f'十进制转二进制:', bin(12))
# 十进制转八进制
print(f'十进制转八进制:', oct(12))
# 十进制转十六进制
print(f'十进制转十六进制:', hex(12))

print('-'*20)

# 二进制转十进制
print(f'二进制转十进制:', int('0b1100', 2))
# 八进制转十进制
print(f'八进制转十进制:', int('0o14', 8))
# 十六进制转十进制
print('十六进制转十进制:', int('0xc', 16))

运行结果:

十进制转二进制: 0b1100
十进制转八进制: 0o14
十进制转十六进制: 0xc
----------
二进制转十进制: 12
八进制转十进制: 12
十六进制转十进制: 12

### 如何用Python将十六进制数组转换为ASCII字符串 在 Python 中,可以通过多种方式将十六进制数据转换为 ASCII 字符串。以下是具体实现方法: #### 方法一:使用 `binascii` 模块 通过 `binascii.unhexlify()` 函数可以直接将十六进制字节数组解码为原始字节流,再将其解码为 UTF-8 编码的字符串。 ```python import binascii # 假设这是输入的十六进制数组 hex_array = b'48656c6c6f20576f726c64' # 使用 unhexlify 解码并转化为字符串 string_result = binascii.unhexlify(hex_array).decode('utf-8') print(string_result) # 输出:Hello World ``` 上述代码展示了如何利用 `binascii.unhexlify()` 来处理十六进制字节数组[^1]。 --- #### 方法二:手动解析十六进制字符串 如果输入的是普通的十六进制字符串而非字节数组,则可以先将其分割为每两个字符一组,然后逐个转换为对应的 ASCII 字符。 ```python # 输入的十六进制字符串 hex_string = '48656c6c6f20576f726c64' # 手动解析并拼接成字符串 ascii_string = ''.join([chr(int(hex_string[i:i+2], 16)) for i in range(0, len(hex_string), 2)]) print(ascii_string) # 输出:Hello World ``` 此方法适用于更灵活的情况,尤其是当输入不是标准字节数组时[^2]。 --- #### 方法三:直接使用内置函数 `bytes.fromhex()` 对于简单的场景,也可以直接使用 Python 的内置函数 `bytes.fromhex()` 将十六进制字符串快速转换为字节对象,随后解码为字符串。 ```python # 输入的十六进制字符串 hex_string = '48656c6c6f20576f726c64' # 利用 fromhex 和 decode 进行转换 result_string = bytes.fromhex(hex_string).decode('utf-8') print(result_string) # 输出:Hello World ``` 这种方法简洁高效,适合大多数常规需求[^3]。 --- #### 总结 三种方法各有优劣: - 如果需要高性能且依赖外部库,推荐 **方法一**; - 对于灵活性较高的自定义场景,可以选择 **方法二**; - 若追求简单易读,建议采用 **方法三**。 无论哪种方式,最终都能成功完成从十六进制到 ASCII 字符串的转换---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值