如何在Python中创建字节对象时输入十进制/二进制数字?
我正在使用 Python 3.1.1。
我知道可以通过 b'...' 这种形式来创建字节对象。在这些字节对象中,每个字节可以用字符表示(如果我没记错的话,是用 ASCII 码)或者用十六进制/八进制数字表示。十六进制和八进制数字可以通过转义符来输入,十六进制用 \x,八进制用 \。
不过,十进制和二进制数字没有转义序列可以使用。我想知道有没有办法把它们输入到字节对象中?
2 个回答
2
你可以使用二进制字面量来表示整数。
>>> b = bytearray(b'abc')
>>> b[0] = 0b1001 # `9` decimal (TAB)
>>> b
bytearray(b'\tbc')
4
你可以使用内置的 bytes 构造函数,把一串整数转换成字节字符串:
>>> bytes((7,8,9,10,11))
b'\x07\x08\t\n\x0b'
>>> bytes(range(7,12))
b'\x07\x08\t\n\x0b'
>>> bytes((0b1,0b0,0b1))
b'\x01\x00\x01'