
起航为您分享以下优质知识
在Python中,将十六进制转换为二进制主要有以下两种常用方法:
一、使用内置函数 `bin()` 和 `int()`
- 先将十六进制字符串转换为整数(使用 `int(hex_str, 16)`),
- 再将整数转换为二进制字符串(使用 `bin()`),并去掉前缀 `0b`。
示例代码
```python
hex_str = 'a1'
decimal_num = int(hex_str, 16)
binary_num = bin(decimal_num)[2:]
print(binary_num) 输出: 10100001
```
二、使用 `format()` 函数
转换步骤
直接将十六进制整数转换为二进制字符串,使用格式化语法 `{:0>
8b}` 可以指定二进制位数(如8位)。
示例代码
```python
hex_num = 'a1'
binary_num = "{:0>
8b}".format(int(hex_num, 16))
print(binary_num) 输出: 10100001
```
三、逐位转换法(手动实现)
转换步骤
将十六进制数的每一位转换为对应的4位二进制数,然后拼接起来。
示例代码
```python
def hex_to_bin(hex_str):
hex_digits = "0123456789ABCDEF"
binary_num = ""
for digit in hex_str:
binary_num += bin(hex_digits.index(digit))[2:].zfill(4)
return binary_num
print(hex_to_bin('a1')) 输出: 10100001
```
四、注意事项
输入类型:
`bin()` 和 `int()` 需要整数输入,若输入为字符串需先转换(如 `int('0x1F', 16)`)。
二进制格式:`bin()` 返回的字符串以 `0b` 开头,使用切片 `[2:]` 去掉前缀。
以上方法均可实现十六进制到二进制的转换,选择适合场景使用即可。