Mat*_*hew 2 python byte python-2.x
我正在使用Python.我试图确定二进制数据集中的正确字节长度.
如果我为变量分配二进制数据......
x = "aabb".decode("hex")
Run Code Online (Sandbox Code Playgroud)
是这样的
x = b'aabb'
Run Code Online (Sandbox Code Playgroud)
如果是这样,你怎么得到多少字节?(它应该是2个字节)
当我尝试:
len(x)
Run Code Online (Sandbox Code Playgroud)
我得到4而不是2 ...
我担心x会变成字符串或其他我不理解的东西,因为数据类型在Python中是如此流畅......
wim*_*wim 10
二进制数据的长度就是len,而类型str在Python-2.x(或bytesPython-3.x)中.但是,您的对象'aabb'不包含两个字节0xaa和0xbb,而是包含与ASCII"a"和"b"字符对应的4个字节:
>>> bytearray([0x61, 0x61, 0x62, 0x62])
bytearray(b'aabb')
>>> bytearray([0x61, 0x61, 0x62, 0x62]) == 'aabb'
True
Run Code Online (Sandbox Code Playgroud)
这可能是您实际需要的等价物:
>>> 'aabb'.decode('hex') == b'\xaa\xbb'
True
Run Code Online (Sandbox Code Playgroud)
以下项目均相同(和长度2):
>>> s1 = 'aabb'.decode('hex')
>>> s2 = b'\xaa\xbb'
>>> s3 = bytearray([0xaa, 0xbb])
>>> s4 = bytearray([170, 187])
>>> s1 == s2 == s3 == s4
True
Run Code Online (Sandbox Code Playgroud)