web-gelistirme-sc.com

Python'da bir dizi bit nasıl oluşturulur?

6 milyon bit diyerek çok büyük bir bit dizisini nasıl ilan edebilirim?

26
zheric
from bitarray import bitarray

a = bitarray(2**20)

Bu modül hakkında daha fazla bilgiyi http://pypi.python.org/pypi/bitarray/ adresinde bulabilirsiniz.

34
SJP

bitstring module yardımcı olabilir:

from bitstring import BitArray
a = BitArray(6000000)

Bu, bir megabayttan daha az bellek harcayacaktır ve bitleri ayarlamak, okumak, kesmek ve yorumlamak kolaydır. Bitarray modülünün aksine saf Python, ayrıca Python 3 için de çalışıyor.

Daha fazla ayrıntı için belgelerine bakınız.

24
Scott Griffiths

Bu bir astar, baytları bir Doğru/Yanlış bit değerleri listesine dönüştürür. 6M bitler için performans göstermeyebilir, ancak küçük bayraklar için iyi olmalı ve ek bağımlılıklara ihtiyaç duymaz.

>>> flags = bytes.fromhex(b"beef")
>>> bits =  [flags[i//8] & 1 << i%8 != 0 for i in range(len(flags) * 8)]
>>> print(bits)
[False, True, True, True, True, True, False, True, True, True, True, True, False, True, True, True]
7
Felix Weis

Kullanarak bitarray modülünü alın 

pip install bitarray

Ardından, bu kod 6 milyon boyutunda bir bit dizisi yaratacaktır,

from bitarray import bitarray
bit_array = bitarray(6000000)

Tüm bitleri sıfır kullanarak sıfırlayabilirsiniz.

bit_array.setall(0)

Belirli bir bit ayarlamak için, bit numarası 25'i 1'e söyleyin, şunu yapın:

bit_array[25]=1   
6
Tarun

Oldukça kolay

bitarray60000 = 1<<60000

Bununla, bitshift operatörünü kalp içeriğiniz için kullanabilirsiniz.

bitarray60000 | 1<<2

Konum 2'den bit alma

bitarray60000 & 1<<2

Sanırım bu fikir oldukça basit. Bazı operasyonlar zor olsa da.

1
Pavel Hanpari