Maison >développement back-end >Tutoriel Python >Comment convertir une chaîne d'octets en un entier en Python : quelle méthode est la meilleure ?
Comment convertir une chaîne d'octets en un entier en Python
La conversion d'une chaîne d'octets en un entier en Python peut être réalisée en utilisant divers méthodes, dont certaines offrent de meilleures performances que d'autres.
Fonction intégrée : int.from_bytes()
Dans les versions Python 3.2 et supérieures, vous pouvez directement convertir une chaîne d'octets en un entier en utilisant la fonction int.from_bytes() :
<code class="python">my_int = int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')</code>
Ici, l'ordre des octets peut être « grand » ou « petit » pour spécifier le caractère boutien de la chaîne d'octets. Big-endian signifie que l'octet le plus significatif est stocké en premier, tandis que small-endian signifie que l'octet le moins significatif est stocké en premier.
Utilisation de la représentation binaire
Une autre approche consiste à convertissez la chaîne d'octets en sa représentation binaire, puis appliquez la fonction int() :
<code class="python">my_int = int(''.join(format(byte, '08b') for byte in b'y\xcc\xa6\xbb'[::-1]), 2)</code>
Cette méthode est plus lente que int.from_bytes(), mais elle peut être utile si vous devez travailler avec des données binaires directement.
Fonction personnalisée
Vous pouvez également créer votre propre fonction personnalisée pour convertir une chaîne d'octets en entier :
<code class="python">def convert_bytes_to_int(byte_string, endianness='big'): if endianness == 'big': return sum(ord(c) << (i * 8) for i, c in enumerate(byte_string)) else: return sum(ord(c) << (len(byte_string) - i - 1) * 8 for i, c in enumerate(byte_string))</code>
Comparaison des performances
Les performances de ces différentes méthodes peuvent varier en fonction de la longueur et du boutisme de la chaîne d'octets. Généralement, int.from_bytes() est la méthode la plus rapide, suivie de la méthode de représentation binaire puis de la fonction personnalisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!