diff options
author | Igor Pavlov <ipavlov@users.sourceforge.net> | 2008-05-05 04:00:00 +0400 |
---|---|---|
committer | Kornel LesiĆski <kornel@geekhood.net> | 2016-05-28 02:15:55 +0300 |
commit | 3901bf0ab88106a5b031cba7bc18d60cdebf7eef (patch) | |
tree | 808a2489abed822223b118b64e0553db80af6087 /CPP/7zip/Compress/RangeCoder/RangeCoder.h | |
parent | bd1fa36322ac27f5715433b388742893d6524516 (diff) |
4.58 beta
Diffstat (limited to 'CPP/7zip/Compress/RangeCoder/RangeCoder.h')
-rwxr-xr-x | CPP/7zip/Compress/RangeCoder/RangeCoder.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/CPP/7zip/Compress/RangeCoder/RangeCoder.h b/CPP/7zip/Compress/RangeCoder/RangeCoder.h index bbb2ba82..0a6b4064 100755 --- a/CPP/7zip/Compress/RangeCoder/RangeCoder.h +++ b/CPP/7zip/Compress/RangeCoder/RangeCoder.h @@ -71,13 +71,12 @@ public: Low = (UInt32)Low << 8; } - void EncodeDirectBits(UInt32 value, int numTotalBits) + void EncodeDirectBits(UInt32 value, int numBits) { - for (int i = numTotalBits - 1; i >= 0; i--) + for (numBits--; numBits >= 0; numBits--) { Range >>= 1; - if (((value >> i) & 1) == 1) - Low += Range; + Low += Range & (0 - ((value >> numBits) & 1)); if (Range < kTopValue) { Range <<= 8; |