Python 3.6对字节数据类型(>;、<;、|、&;)的按位操作引发错误:

Python 3.6对字节数据类型(>;、<;、|、&;)的按位操作引发错误:,python,python-3.6,bitwise-operators,bit-shift,Python,Python 3.6,Bitwise Operators,Bit Shift,我是一名初学者,我正在尝试对“byte”数组中的元素执行逐位操作 示例代码: step1_result[i] = (bytes((seedrandom[i] >> 3)) | bytes((seedrandom[i] << 5))) step1\u result和seedrandom是一个包含“byte”类型元素的列表 Python中是否有一种特定的方法可以对字节应用逐位运算?Python的逐位运算符,因此在执行逐位运算之前,需要将每个字节转换为int import s

我是一名初学者,我正在尝试对“byte”数组中的元素执行逐位操作

示例代码:

step1_result[i] = (bytes((seedrandom[i] >> 3)) | bytes((seedrandom[i] << 5)))
step1\u result
seedrandom
是一个包含“byte”类型元素的列表


Python中是否有一种特定的方法可以对字节应用逐位运算?

Python的逐位运算符,因此在执行逐位运算之前,需要将每个
字节
转换为
int

import sys
b1, b2 = [b'\x77', b'\x88']
int.from_bytes(b1, sys.byteorder) << int.from_bytes(b2, sys.byteorder)
导入系统 b1,b2=[b'\x77',b'\x88']
int.from_字节(b1,sys.byteorder)
字节
是不可变的序列类型,而不是数字类型。您是指元素操作,例如
字节(map(lambda x:(xShow违规行,拜托,您的代码没有使用
>
字节
可以被认为是一个字符列表,因此按其他
字节
进行移位是未定义的。代码已经更新。代码中仍然没有包含两个
字节
作为操作数的
。我想进行位运算,我想要“8位”字节上的操作。由于默认大小为128位,所以输出并不像预期的那样。128是从哪里来的?Python支持任意大的整数。
import sys
b1, b2 = [b'\x77', b'\x88']
int.from_bytes(b1, sys.byteorder) << int.from_bytes(b2, sys.byteorder)
ba = bytearray(b'\x77\x01')
ba[0] << ba[1]
bs = b'\x77\x01'
bs[0] << bs[1]