0

例如,我正在使用 bitarray 编写程序:

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 相乘以得到模数,那我该怎么办?

4

1 回答 1

1

像其他人一样,我不确定您的意思是什么and the essential element in the array is Int,但是如果您要创建一个布尔值(1 和 0)的位数组,请使用bitarray

于 2012-03-06T06:02:13.410 回答