繁体   English   中英

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM