C#实现的bitmap能够高效地进行存储标记,排序等
namespace bitmapTest
{
class BitMap
{
const int SizeOfByte = 8;
const int SizeOfInt=sizeof(int)*SizeOfByte;
int[] map;
int NumOfBits;
int NumOfInt;
public BitMap(int bits)
{
NumOfBits = bits;
NumOfInt = (NumOfBits % SizeOfInt == 0 ? NumOfBits / SizeOfInt : NumOfBits / SizeOfInt + 1);
map=new int[NumOfInt];
//for (int i = 0; i < 10; i++)
//{
// Set(i);
//}
//Print(20);
//Console.WriteLine("*******");
//for (int i = 0; i < 5; i++)
//{
// UnSet(i);
//}
//Print(20);
}
public bool UnSet(int which)
{
if (which<0||which>NumOfBits)
{
return false;
}
map[which / SizeOfInt] &= ~(0x1