2010-04-10 5 views
1

J'utilise python 3.1.1. Je sais que je peux créer des objets octets en utilisant le littéral octet sous la forme de 'b' ... '. Dans ces objets octets, chaque octet peut être représenté comme un caractère (en code ASCII si je ne me trompe pas) ou comme un nombre hexadécimal/octal. Les nombres hexadécimaux et octaux peuvent être entrés en utilisant un échappement de \ x pour les nombres hexadécimaux et juste un \ pour les nombres octaux.Comment entrer des nombres décimaux/binaires lors de la création d'objets octets en python?

Cependant, il n'y a pas de séquences d'échappement pour les nombres décimaux ou binaires. Y a-t-il un moyen de les entrer dans des objets octets?

Répondre

2

Vous pouvez utiliser le haut-constructeur bytes pour transformer une séquence d'entiers dans une chaîne d'octets:

>>> bytes((7,8,9,10,11)) 
b'\x07\x08\t\n\x0b' 
>>> bytes(range(7,12)) 
b'\x07\x08\t\n\x0b' 
>>> bytes((0b1,0b0,0b1)) 
b'\x01\x00\x01' 
+0

Merci! C'est exactement ce que j'essayais de faire. J'ai complètement oublié d'utiliser ce type de fonctions pour initialiser les variables. – Eric

2

Vous pouvez utiliser littéraux binaires pour les entiers

>>> b = bytearray(b'abc') 
>>> b[0] = 0b1001 # `9` decimal (TAB) 
>>> b 
bytearray(b'\tbc') 
Questions connexes