BitMap的原理不用多说了。
主要说下位操作。
我们假设每个基础存储单元为char,则BYTESIZE = 8,如果为int则16 or 32。
当设置i时,首先ptr+=i/BYTESIZE,到达要操作的那个char。
然后对*ptr |= 0x01<<(i%BYTESIZE)即可。这里在同一个机器上,可以忽略大小端的问题。
检查的时候,也是首先ptr+=i/BYTESIZE,然后查 (*ptr&0x01<<(i%BYTESIZE[......]
BitMap的原理不用多说了。
主要说下位操作。
我们假设每个基础存储单元为char,则BYTESIZE = 8,如果为int则16 or 32。
当设置i时,首先ptr+=i/BYTESIZE,到达要操作的那个char。
然后对*ptr |= 0x01<<(i%BYTESIZE)即可。这里在同一个机器上,可以忽略大小端的问题。
检查的时候,也是首先ptr+=i/BYTESIZE,然后查 (*ptr&0x01<<(i%BYTESIZE[......]