4

LEB128形式で数値をエンコード/デコードするには、どの C 関数を使用しますか? 簡単なドキュメントや例が見つかりませんでした。

4

2 に答える 2

1

ウィキペディアから:

符号付き数値も同様に表されますが、2 の補数は 7 ビットの倍数まで符号拡張されます (最上位ビットが正の数値の場合は 0 で、負の数値の場合は 1 になります)。次に、番号は符号なしエンコーディングと同様にグループに分割されます。

do {
  byte = low order 7 bits of value;
  value >>= 7;
  if (value != 0) /* more bytes to come */
    set high order bit of byte;
  emit byte;
} while (value != 0);
于 2013-08-12T19:48:59.660 に答える