Protocol Buffer Varintエンコーダー

符号なし整数を入力してprotobuf varintとしてエンコードします。

使い方

  1. 上のフィールドに値を入力します。
  2. 「計算」を押すと結果がすぐに表示されます。
  3. 「共有」ボタンで結果へのリンクをコピーできます。

この計算ツールについて

Google のバイナリシリアライズ形式である Protocol Buffers は、小さな数値の領域を節約するために、整数をbase-128 の varint でエンコードします。各バイトは値の7ビットと、「継続」ビット(最上位ビット)を持ち、後ろにまだバイトが続く場合は1、最後のバイトでは0に設定されます。そのため、小さな整数(フィールドの長さ、列挙型の値、ID など、実際の protobuf メッセージの大半を占めるもの)は、固定幅の整数なら常に4バイトか8バイトかかるところを、わずか1バイトでエンコードされます。これが、protobuf のメッセージが通信上でこれほど小さく保たれる理由のすべてです。

この計算ツールは、符号なし整数を入力すると、その varint のバイト列にエンコードし、各バイトを16進数と2進数の両方で示すので、継続ビットが働くようすを確かめられます。protobuf のワイヤーフォーマットの問題をデバッグするバックエンドエンジニア、生成ライブラリを使わずに独自の protobuf パーサーやシリアライザーを書く開発者、バイナリエンコーディング方式を学ぶ学生は、値のバイトエンコーディングが、自分のコードの出力や想定と一致するかを手作業で検証するためにこれを使います。

このページは役に立ちましたか?

リアクションは最大3つまで選べます。

コメント

  • 最初のコメントを投稿しましょう。

人気の計算機

すべての計算ツール