Fri, 16 Jan 2015 18:13:44 +0100
Integrate suggestion from review to improve consistency with existing code.
1 // LSBFEncoder.cpp
3 #include "StdAfx.h"
5 #include "LSBFEncoder.h"
6 #include "Common/Defs.h"
8 namespace NStream {
9 namespace NLSBF {
11 void CEncoder::WriteBits(UInt32 value, int numBits)
12 {
13 while(numBits > 0)
14 {
15 if (numBits < m_BitPos)
16 {
17 m_CurByte |= (value & ((1 << numBits) - 1)) << (8 - m_BitPos);
18 m_BitPos -= numBits;
19 return;
20 }
21 numBits -= m_BitPos;
22 m_Stream.WriteByte((Byte)(m_CurByte | (value << (8 - m_BitPos))));
23 value >>= m_BitPos;
24 m_BitPos = 8;
25 m_CurByte = 0;
26 }
27 }
29 }}