private void PutBits(int bits, int length)
{
while (length > bit) {
data |= bits >> (length - bit);
length -= bit;
outBuf.Append((byte)data);
data = 0;
bit = 8;
}
data |= (bits & msbmask[length]) << (bit - length);
bit -= length;
if (bit == 0) {
outBuf.Append((byte)data);
data = 0;
bit = 8;
}
}