Length of binary data in python
The length of binary data is just the len
, and the type is str
in Python-2.x (or bytes
in Python-3.x). However, your object 'aabb'
does not contain the two bytes 0xaa and 0xbb, rather it contains 4 bytes corresponding with ASCII 'a' and 'b' characters:
>>> bytearray([0x61, 0x61, 0x62, 0x62])
bytearray(b'aabb')
>>> bytearray([0x61, 0x61, 0x62, 0x62]) == 'aabb'
True
This is probably the equivalence you were actually looking for:
>>> 'aabb'.decode('hex') == b'\xaa\xbb'
True
The following items are all equal (and length 2
):
>>> s1 = 'aabb'.decode('hex')
>>> s2 = b'\xaa\xbb'
>>> s3 = bytearray([0xaa, 0xbb])
>>> s4 = bytearray([170, 187])
>>> s1 == s2 == s3 == s4
True
Matthew
BS in Computer Science from Embry-Riddle Aeronautical University MS in Information Technology from University of Maryland University College 9+ Years Cyber Officer in U.S. Air Force
Updated on October 16, 2020Comments
-
Matthew over 3 years
I am using Python. I am trying to determine the correct length of bytes in a binary set of data.
If I assign a variable the binary data...
x = "aabb".decode("hex")
is that the same as
x = b'aabb'
And if so, how do you get how many bytes that is? (It should be 2 bytes)
When I try:
len(x)
I get 4 instead of 2 though...
I am worried that x is turned into a string or something else I don't understand because the data types are so fluid in Python...
-
Elliot Woods over 6 yearshmm.. would be good to answer the title though rather than the body text
-
wim over 5 years@ElliotWoods I've edited to put it first and foremost.