>>373
> (p[i] + log2(1 / p[i])) の合計
p[i] * log2(1 / p[i]) じゃなくて?

あと log2(1 / p[i]) は圧縮限界の値なのでサイズに余裕持たせとくとか、
ちゃんと RangeCoder の実装にあった式使うとかしないとオーバーフローする可能性あるよ。