Länge der Binärdaten in python

Ich bin mit Python. Ich bin versuchen, bestimmen Sie die richtige Länge von bytes in eine binäre Reihe von Daten.

Wenn ich einer Variablen zuweisen, werden die binären Daten...

x = "aabb".decode("hex")

ist das das gleiche wie

x = b'aabb'

Und wenn ja, wie bekommen Sie, wie viele bytes das ist? (Es sollten 2 bytes)

Wenn ich versuche:

len(x)

Bekomme ich 4 statt 2 obwohl...

Ich bin besorgt, dass x in einen string umgewandelt oder sonst etwas, das ich nicht verstehe, da die Datentypen sind so fluid in Python...

Wenn ich x = "aabb".decode("hex"), dann len(x) zurück 2. Ist das nicht das, was es gibt auf deiner Maschine?
"aabb".decode("hex") == b'aabb' gibt False zurück. Ihre Annahme, auf diese zwei Formen gleich sind, ist falsch.
Kevin, du hast Recht, Es ist nur, wenn ich x = b'aabb' bekomme ich die Länge von 4, also die Frage ist glaube ich das was hat b'aabb' eigentlich wirklich?
In Python 2, b'aabb' ist identisch mit 'aabb', aber Sie sind anders in Python 3. Auch "aabb".decode("hex") in Python 3 wirft AttributeError: 'str' object has no attribute 'decode'. Und b"aabb".decode("hex") in Python 3 wirft LookupError: 'hex' is not a text encoding; use codecs.decode() to handle arbitrary codecs
Konvertieren 'aabb' zu den bytestring b'\xaa\xbb' in einer Weise, die funktioniert in beiden Versionen Sie tun können: import binascii;binascii.unhexlify("aabb")

InformationsquelleAutor Matthew | 2016-11-21

Schreibe einen Kommentar