estoy convirtiendo la cadena siguiente a que es la representación de entero sin signo:¿La forma más corta de convertir estos bytes a int en python?
str = '\x00\x00\x00\x00\x00\x00\x01\xFF'
puedo usar struct.unpack('8B', str)
para obtener la representación tupla (0,0,0,0,0,0,1,255)
, pero lo que es la forma más rápida/más fácil de convertir esta tupla a un int?
En este momento, mi código es
def unpack_str(s):
i = r = 0
for b in reversed(struct.unpack('8B', s)):
r += r*2**i
i++
return r
Pero esto es largo y feo, para una función tan simple! ¡Debe haber una mejor manera! ¿Pueden los gurús de SO Python ayudarme a recortar esto y python-ify?
Psst! ¡Tu función siempre regresará a cero! ¿Puedes ver por qué? –
Además, 'i ++' es una sintaxis inválida (a diferencia de la igualmente sin sentido, pero más furtivo '++ i' que se ejecuta pero no hace nada). – delnan