python 中二进制数据的长度
Length of binary data in python
我正在使用 Python。我正在尝试确定二进制数据集中字节的正确长度。
如果我将二进制数据分配给变量...
x = "aabb".decode("hex")
和
一样吗
x = b'aabb'
如果是这样,您如何获得它的字节数? (应该是2个字节)
当我尝试时:
len(x)
虽然我得到 4 而不是 2...
我担心 x 会变成字符串或其他我不理解的东西,因为 Python...
中的数据类型非常流畅
二进制数据的长度就是len
,类型是Python-2.x中的str
(或 Python-3.x 中的 bytes
)。但是,您的对象 'aabb'
不包含两个字节 0xaa 和 0xbb,而是包含对应于 ASCII 'a' 和 'b' 字符的 4 个字节:
>>> bytearray([0x61, 0x61, 0x62, 0x62])
bytearray(b'aabb')
>>> bytearray([0x61, 0x61, 0x62, 0x62]) == 'aabb'
True
这可能是您实际上正在寻找的对等物:
>>> 'aabb'.decode('hex') == b'\xaa\xbb'
True
以下项都相等(且长度 2
):
>>> s1 = 'aabb'.decode('hex')
>>> s2 = b'\xaa\xbb'
>>> s3 = bytearray([0xaa, 0xbb])
>>> s4 = bytearray([170, 187])
>>> s1 == s2 == s3 == s4
True
我正在使用 Python。我正在尝试确定二进制数据集中字节的正确长度。
如果我将二进制数据分配给变量...
x = "aabb".decode("hex")
和
一样吗x = b'aabb'
如果是这样,您如何获得它的字节数? (应该是2个字节)
当我尝试时:
len(x)
虽然我得到 4 而不是 2...
我担心 x 会变成字符串或其他我不理解的东西,因为 Python...
中的数据类型非常流畅二进制数据的长度就是len
,类型是Python-2.x中的str
(或 Python-3.x 中的 bytes
)。但是,您的对象 'aabb'
不包含两个字节 0xaa 和 0xbb,而是包含对应于 ASCII 'a' 和 'b' 字符的 4 个字节:
>>> bytearray([0x61, 0x61, 0x62, 0x62])
bytearray(b'aabb')
>>> bytearray([0x61, 0x61, 0x62, 0x62]) == 'aabb'
True
这可能是您实际上正在寻找的对等物:
>>> 'aabb'.decode('hex') == b'\xaa\xbb'
True
以下项都相等(且长度 2
):
>>> s1 = 'aabb'.decode('hex')
>>> s2 = b'\xaa\xbb'
>>> s3 = bytearray([0xaa, 0xbb])
>>> s4 = bytearray([170, 187])
>>> s1 == s2 == s3 == s4
True