0

たとえば、ビット配列を使用してプログラムを作成しています。

bytePerInt = sys.getsizeof(1)
class BitMap(object):

    def __init__(self,bits):
        self.bitsPerInt = 8*bytePerInt
        size = bits/self.bitsPerInt+1
        self.bitarray = [0]*size

    #set the bit of pos as 1
    def setBit(self,pos):
        index = pos/self.bitsPerInt
        shift = pos%self.bitsPerInt
        operator = self.bitarray[index]
        mask = 1<<shift
        operator|=mask
        self.bitarray[index] = operator

num%32の代わりにnum&31のように、%の代わりにaddを使用してモジュラスを取得したいと思います。しかし、私のコンピューターではbytePerIntは24であり、bitsPerIntは24 * 8 = 192であり、これは2の累乗ではありません。その結果、191を使用してモジュラスを取得できないので、何ができるでしょうか。

4

1 に答える 1

1

他の人と同じように、あなたが何を意味するand the essential element in the array is Intのかわかりませんが、ブール値(1と0)のビット配列を作成している場合は、bitarrayを使用してください。

于 2012-03-06T06:02:13.410 に答える