2010-10-20 9 views
1

Je veux avoir une représentation en octets de certains nombres. Par exemple, un tableau d'octets dont le premier octet a une signification (0-255), le deuxième octet un autre (0-255) et ainsi de suite. Puisque les chaînes sont des tableaux d'octets, je peux facilement les représenter comme "aB" si je veux stocker 97 et 66. Maintenant, si je veux que le troisième et le quatrième octets représentent un nombre entre 0 et 65535, comment puis-je faire? Ps: J'utilise python 2.5, donc je ne peux pas profiter des fonctions pour manipuler les octets (comme bytes() et bytearray()) qui ont été introduits récemment.Python: num en octets

modifier: 0-65536 -> 0-65535

Répondre

1

Vous voulez struct.

>>> import struct 
>>> struct.pack('<HBB', 12345, 97, 66) 
'90aB' 
0

(. Vous aurez un peu de difficulté si vous voulez représenter 0-65536, donc je vais supposer que vous vouliez dire 0-65535)

Enregistrez simplement x >> 8 dans un octet et x & 0xff dans l'autre octet. Vous pouvez également utiliser le module struct de Python pour emballer différents types de données en octets.