python二进制操作汇总

数据编码之间的转化

设计到的格式

  • 十六进制字符串 "9A 00 1B CB 34 00 C7 00 00 30 10 00"
  • 十进制字符串 "154 0 27 203 52 0"
  • 大端模式
  • 十六进制转字符串

转化方法


# 十进制(数字) -> 十六进制(字符串) 
hex(128) == '0x80' # True
hex(128) == '80' # False
hex(128) == 0x80 # False
hex(128) == 80 # False
hex(5) == '0x5' # True 注意这里未补齐0

# 十六进制(字符串)  -> 十进制(数字)
# int() 将其他类型转化成十进制的数字, 第二个参数是源数据的进制类型
int('80',16) == 128 # True
int('0x80', 16) == 128 # True

# 十六进制(字符串) -> utf8字符串
hex_str = 'ac0254d4'


# 十进制(数字) -> 二进制(字符串)
bin(10) == '0b1010' # True

其他包处理

base64包

此模块提供了将二进制数据编码为可打印的 ASCII 字符以及将这种编码格式解码回二进制数据的函数

在python3中, base64.b64encode()操作的对象是直接数组

binascii包

>>> import binascii
>>> binascii.b2a_hex("你好啊".encode("gbk"))
b'c4e3bac3b0a1'
>>> binascii.a2b_hex("c4e3bac3b0a1").decode("gbk")
'你好啊'

此处评论已关闭