Я преобразование следующей строки это беззнаковое целое представление:Самый короткий способ преобразования этих байтов в int в python?
str = '\x00\x00\x00\x00\x00\x00\x01\xFF'
я могу использовать struct.unpack('8B', str)
, чтобы получить представление кортежа (0,0,0,0,0,0,1,255)
, но то, что это самый быстрый/простой способ, чтобы преобразовать этот кортеж к междам?
Прямо сейчас, мой код
def unpack_str(s):
i = r = 0
for b in reversed(struct.unpack('8B', s)):
r += r*2**i
i++
return r
Но это долго и некрасиво, для такой простой функции! Должен быть лучший способ! Могут ли любые гуру SO python помочь мне обрезать это и python-ify?
PSST! Ваша функция всегда будет возвращать ноль! Вы можете понять, почему? –
Кроме того, 'i ++' - это недопустимый синтаксис (в отличие от не менее бессмысленного, но более скрытого '++ i', который работает, но ничего не делает). – delnan