Python 试图将字节数组中的字节拆分为两个半字节
我得到一个字节数组,我试图测试第一个字节的前4位是否等于4。如果没有,则返回错误代码2 我已经尝试过从数组中取出字节并拆分它的十六进制值,但我不太确定如何做到这一点,因为我对处理字节还不熟悉Python 试图将字节数组中的字节拆分为两个半字节,python,arrays,byte,nibble,Python,Arrays,Byte,Nibble,我得到一个字节数组,我试图测试第一个字节的前4位是否等于4。如果没有,则返回错误代码2 我已经尝试过从数组中取出字节并拆分它的十六进制值,但我不太确定如何做到这一点,因为我对处理字节还不熟悉 def basicpacketcheck (pkt): version, hdrlen = bytes(pkt[0:1]) if version != 4: return 2 这是我的密码 pkt[0:1] 给我 bytearray(b'E') 我需要分开 E(转换为
def basicpacketcheck (pkt):
version, hdrlen = bytes(pkt[0:1])
if version != 4:
return 2
这是我的密码
pkt[0:1]
给我
bytearray(b'E')
我需要分开 E(转换为0x45)为0x4和0x5。使用
pkt[0]
获取第一个字节作为int 69。然后,您可以对int对象使用逐位移位(
)和逐位and(&
)运算符,以拆分为半字节:
pkt=bytearray(b'EAB82348…)
>>>b=pkt[0]#69==0x45
>>>(b>>4)&0xf#0x45->0x4->0x4
4.
>>>(b)&0xf#0x45->0x5
5.