我是Python新手。在Perl中,要將特定位設置爲標量變量(整數),我可以使用如下所示的vec()
。python等價的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");
輸出:
vec() Has a created a string of nybbles,
in hex: 0001000a0003000f
我想知道如何實現在Python一樣,而不必編寫位操作代碼和struct.pack手動使用?
當你說你的意思是位操作碼位位移<< >>? – user2958652
你說它設置位0到3,4到7等,但它設置半字節3(位12到15),7(位28到31)等。無論哪種方式,應該很容易編寫自己的'vec '如果沒有相同的東西。 – ikegami
也許這個問題[Python中的位數組](http://stackoverflow.com/q/11669178/2157640)會有所幫助。 – Palec