Я пишу программу с использованием 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, чтобы получить модуль, так что я могу сделать?