Comment convertir une chaîne d'octets en un entier en Python : quelle méthode est la meilleure ?

Barbara Streisand
Libérer: 2024-10-26 04:04:02
original
225 Les gens l'ont consulté

How to Convert a Byte String to an Integer in Python: Which Method is Best?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!