Sono nuovo di Python. In Perl, per impostare bit specifici su una variabile scalare (numero intero), posso usare vec()
come di seguito.Equivalente di Python della funzione perl vec()
#!/usr/bin/perl -w
$vec = '';
vec($vec, 3, 4) = 1; # bits 0 to 3
vec($vec, 7, 4) = 10; # bits 4 to 7
vec($vec, 11, 4) = 3; # bits 8 to 11
vec($vec, 15, 4) = 15; # bits 12 to 15
print("vec() Has a created a string of nybbles,
in hex: ", unpack("h*", $vec), "\n");
uscita:
vec() Has a created a string of nybbles,
in hex: 0001000a0003000f
mi chiedevo come realizzare la stessa in Python, senza dover scrivere il codice di manipolazione bit e utilizzando struct.pack manualmente?
Quando si dice il codice di manipolazione po vuoi dire Bitshift << >>? – user2958652
Si dice che imposta bit da 0 a 3, da 4 a 7, ecc. Ma imposta nibbles 3 (bit da 12 a 15), 7 (bit da 28 a 31), ecc. In ogni caso, dovrebbe essere facile scrivere il proprio 'vec 'se non c'è un equivalente. – ikegami
Forse la domanda [Matrice di bit in Python] (http://stackoverflow.com/q/11669178/2157640) sarebbe d'aiuto. – Palec