さてさて、格納するのは正の数とは限らないわけで。
負の数を格納する方法をいろいろと。
- 各データに正負を示す 1 bit を増やす
- データはすべて絶対値×2 とし、負の数なら+1する
- すべて絶対値とし、符号データのみ集めてランレングス圧縮
3パターン考えていて、全部試してみようと思ったんですよ。
…よく考えると上と中って変わらないじゃないの……(涙)
そして下のパターン。使用データが悪いのか、縮まない。
……そういうわけで上の方法を採用。
そこで少しだけデータの最適化。
[ c の値 ] [ a 個 ] [ 1 ] の後に [ 符号 0 or 1 ] とする。
こうして、データが0の際には符号を入れないようにする。
結果…符号の分、14Bytes 縮みました。微妙すぎ……