Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 试图将字节数组中的字节拆分为两个半字节_Python_Arrays_Byte_Nibble - Fatal编程技术网

Python 试图将字节数组中的字节拆分为两个半字节

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(转换为

我得到一个字节数组,我试图测试第一个字节的前4位是否等于4。如果没有,则返回错误代码2

我已经尝试过从数组中取出字节并拆分它的十六进制值,但我不太确定如何做到这一点,因为我对处理字节还不熟悉

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.