
抓住机遇为您分享以下优质知识
Python的二进制转换主要通过内置函数和标准库实现,具体方法如下:
一、二进制与十进制转换
- 使用 `bin()` 函数:`bin(number)` 返回以 `0b` 开头的二进制字符串(如 `bin(42)` 返回 `'0b101010'`)`
- 去掉前缀:`bin(number)[2:]`(如 `'101010'`)
- 使用 `int()` 函数:`int(binary_string, 2)`(如 `int('101010', 2)` 返回 `42`)
二进制转十进制
- 使用 `int()` 函数:`int(binary_string, 2)`(如 `int('101010', 2)` 返回 `42`)
二、二进制与十六进制转换
二进制转十六进制
- 使用 `hex()` 函数:`hex(number)` 返回十六进制字符串(如 `hex(42)` 返回 `'0x2a'`)
- 使用 `binascii` 模块:`binascii.hexlify(binary_data)`(如 `binascii.hexlify(b'x1a')` 返回 `'2a'`)
十六进制转二进制
- 使用 `binascii.unhexlify()`:`binascii.unhexlify(hex_string)`(如 `binascii.unhexlify('2a')` 返回 `b'x1a'`)
- 使用 `int()` 函数:`int(hex_string, 16)`(如 `int('2a', 16)` 返回 `42`)
三、字符转二进制
字符转ASCII码再转二进制
- 使用 `ord()` 获取ASCII码:`ord('A')` 返回 `65`
- 使用 `bin()` 转换:`bin(65)` 返回 `'0b1000001'`
- 去掉前缀并补齐位数:`bin(65)[2:].zfill(8)` 返回 `'01000001'`
四、文件二进制转换
使用 `binascii.a2b_hex()` 将十六进制文件内容转换为二进制数据,或 `binascii.a2b_base64()` 进行base64编码。
五、其他进制转换
八进制转二进制:
`oct(number)` 返回 `'0o12'`,再通过 `bin()` 转换
十进制转八进制:`oct(number)` 返回 `'0o12'`
以上方法覆盖了Python中常见的二进制转换需求,可根据具体场景选择合适的方式。