Ich Umwandlung der folgenden Zeichenfolge es Darstellung unsigned integer ist:Kürzeste Möglichkeit, diese Bytes in Python in int zu konvertieren?
str = '\x00\x00\x00\x00\x00\x00\x01\xFF'
I struct.unpack('8B', str)
können die Tupel Darstellung (0,0,0,0,0,0,1,255)
, zu bekommen, aber was ist der schnellste/einfachste Weg, dieses Tupel in einen int zu konvertieren?
Gerade jetzt, mein Code ist
def unpack_str(s):
i = r = 0
for b in reversed(struct.unpack('8B', s)):
r += r*2**i
i++
return r
Aber das ist lang und hässlich, für eine solche einfache Funktion! Es muss einen besseren Weg geben! Können mir irgendwelche SO-Python-Gurus helfen, das herunterzuspielen und Python-ify?
psst! Ihre Funktion gibt immer Null zurück! Kannst du sehen warum? –
Außerdem ist 'i ++' eine ungültige Syntax (im Gegensatz zu dem ebenfalls bedeutungslosen, aber hinterhältigen '++ i', das läuft, aber nichts tut). – delnan