public void setBit(uint bitNum)
{
uint bytePos = bitNum >> 5; // divide by 32
byte bitPos = (byte)(bitNum & 0x1F); // get the lowest 5 bits
uint mask = (uint)1 << bitPos;
this.data[bytePos] |= mask;
if (bytePos >= this.dataLength)
this.dataLength = (int)bytePos + 1;
}