CompactSize
Compact Size | CompactSize Unsigned Integers
VARINT もあった気がする
bitcoin core - What is the different between CompactSize and VarInt encoding? - Bitcoin Stack Exchange
データの前に、データのサイズを表現することがよくある
データ長を表現する形式
しかしデータ長を表現するデータのデータ長はあらかじめ決めておく必要がある
固定にすると、小さくて済む場合でも、大きいサイズを確保しなければいけない
これを可変にする仕組み
0xFC までは 1byte で表現する
0~252 byte までの長さは、直接 hex 1byte で表現する
これ以降は、最初の byte はフラグであり、以降何バイト長さを表現しているかを指定する
FD
次の 2 bytes
FE
次の 4 bytes
FF
次の 8 bytes