Python的按位运算符only operate on integers,因此您需要在执行按位运算之前将每个clear_output()
转换为byte
。
int
请注意,如果您的字节位于实际的bytearray中,则不需要显式转换,因为在字节数组上建立索引会返回整数。
import sys
b1,b2 = [b'\x77',b'\x88']
int.from_bytes(b1,sys.byteorder) << int.from_bytes(b2,sys.byteorder)
同样,如果字节位于复合bytes对象中
ba = bytearray(b'\x77\x01')
ba[0] << ba[1]
,
bytes
是不可变的序列类型,而不是数字类型。您是指元素操作,例如bytes(map(lambda x: (x<<3) & 0xff,b'\xff\x03'))
(列表理解形式:bytes([(x<<3) & 0xff for x in b'\xff\x03'])
)吗?请注意,字节数不能超过255,因此在将其收集到第二个字节对象之前,我需要将其掩码为8位。 Python没有用于单数字节的标准类型,就像它没有用于单数字符的标准类型一样。如果您从bytes
对象读取单个元素,则该字节将转换为int
。
本文链接:https://www.f2er.com/3097237.html