Conversion d'octets en entiers en Python
Lorsque vous travaillez avec des algorithmes de cryptage et de déchiffrement, il est souvent nécessaire de convertir des séquences d'octets en valeurs entières et vice versa. En Python, le processus de conversion d'octets en entiers est simple à l'aide de la fonction intégrée int.from_bytes().
La fonction int.from_bytes() prend trois arguments : octets, ordre des octets et signé (facultatif) . L'argument bytes spécifie la séquence d'octets à convertir, byteorder indique l'ordre des octets (soit « grand » ou « petit ») et signé détermine si la valeur doit être traitée comme un entier signé ou non (la valeur par défaut est False).
Par exemple, pour convertir une séquence d'octets b'x03' en un entier, on peut utiliser :
<code class="python">bytes([3]) == b'\x03' result = int.from_bytes(b'\x03', byteorder='big') print(result) # 3</code>
Dans ce cas, l'argument byteorder='big' indique que l'octet de poids fort doit être au début de la séquence d'octets. Si nous utilisions byteorder='little', la même séquence d'octets serait plutôt interprétée comme 256.
L'argument signé peut être utilisé pour spécifier si la valeur doit être traitée comme un entier signé. Par exemple, pour convertir une séquence b'xfcx00' en un entier signé, nous pouvons utiliser :
<code class="python">result = int.from_bytes(b'\xfc\x00', byteorder='big', signed=True) print(result) # -1024</code>
Cela interprétera la séquence comme un entier signé en utilisant le codage en complément à deux, ce qui donnera une valeur de -1024. .
Dans l'ensemble, la fonction int.from_bytes() fournit un moyen simple et efficace de convertir des séquences d'octets en valeurs entières en Python. En spécifiant l'ordre des octets et la signature, vous pouvez vous assurer que la conversion est effectuée comme prévu.
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!