0

シリアライゼーション/プロトコル形式の場合、実装が簡単な省スペースの方法で符号なし64ビット整数までの符号なし数値をエンコードする必要があります(つまり、専用の圧縮アルゴリズムを探しているわけではありません)。私は次のことを考えていました:

if n<128  
    take bits 0..6 for representing n, set overflow bit 7 to 0
    store one byte
if n>=128 and n<16384
    take bits 0..6 of byte 1 as bits 0..6 of n, set overflow bit 7 of byte 1 to 1
    take bits 0..6 of byte 2 as bits 7..13 of n, set overflow bit 7 of byte 2 to 0
    store byte 1 followed by byte 2
 if n>=16384 and n<2^21
    ...set overflow bit 7 of byte 2 to 1... (and so on)

これについて 2 つの質問があります。

  1. この形式はどのように呼ばれますか? 実装はどこで調べることができますか?

  2. これは、128 未満の小さな数値が頻繁に送信されるソケット経由で送信されるバイナリ プロトコル用です。余分な処理はそれだけの価値があると思いますか?

4

2 に答える 2

0

さて、さらに調査を重ねた結果、ようやく見つけました。これは「可変長数量」と呼ばれ、MIDI および ASN.1 で使用されます (ウィキペディアのエントリを参照) 。

私の他の質問に答えるために、私はそれが処理オーバーヘッドの価値がないと信じる傾向がありますが、私はまだそれについて熟考しています.

于 2011-02-03T18:40:48.527 に答える
0

同じではありませんが、UTF-8 に似ています。

編集

ところで:既知のプロトコルを試して選択してください。UTF-8、ハフマンエンコーディング...

于 2011-02-03T12:06:23.900 に答える