Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- internal void WriteInt32( int intVal )
- {
- WriteBits(intVal, 32);
- }
- internal void WriteBits<T>(T valz, int numBits)
- {
- if (numBits > 0)
- {
- _numBits += numBits;
- while (true)
- {
- int pos7 = (WritePos & 7);
- int unk = 8 - pos7;
- var lShift = (char) (1 << unk);
- int subNum;
- if (unk < numBits)
- subNum = unk;
- else
- {
- lShift = (char) (1 << numBits);
- subNum = numBits;
- }
- numBits -= subNum;
- var firstHalf = (char) (~((lShift - 1) << pos7));
- var shifted = (char) Shift(valz, numBits);
- var secondHalf = (char) (((lShift - 1) & shifted) << pos7);
- Buffer[WritePos >> 3] = (byte) (Buffer[WritePos >> 3] & firstHalf | secondHalf);
- WritePos += subNum;
- if (numBits == 0)
- return;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement