私は例えば をbitarray使用してプログラムを書いているを使用して係数:Pythonの:AND演算
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 & 31の代わりにnum%32として、代わりに%の追加とモジュラスを取得したいです。 しかし、私のコンピュータではbytePerIntは24で、bitsPerIntは24 * 8 = 192であり、2の累乗ではありません。その結果、私は191でモジュラスを得ることができません。 ?
intあたり24バイト?本気ですか? –
あなたが興味があるかもしれない 'int.bit_length'メソッドがあります – warvariuc
@danielkullmannはい、私がsys.getsizeof(1)を出力すると、結果は24です – remy