public void WriteMSB(int value, int length)
{
Debug.Assert(value < 1 << length, "value does not fit in length");
int reversed = 0;
for (int i = length - 1; i >= 0; i--)
{
reversed <<= 1;
reversed |= value & 1;
value >>= 1;
}
WriteLSB(reversed, length);
}