Python:使用anding的模数

时间:2012-03-06 05:12:48

标签: python modulus

我正在使用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&amp; 31而不是num%32。 但是,我的计算机中的bytePerInt是24,bitsPerInt是24 * 8 = 192,这不是2的幂数,因此,我无法和191获得模数,所以我能做什么?

1 个答案:

答案 0 :(得分:1)

和其他人一样,我不确定and the essential element in the array is Int的含义,但是如果要创建一些布尔值(1和0),请使用bitarray