Python:使用anding的模数

2024-09-30 02:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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,bitsprint是24*8=192,这不是2的幂次,因此,我不能用191求模,所以我能做什么呢?在


Tags: posself程序sizeindexshiftdefsys

热门问题