トラック
/
PHP
PHP
/
演習
/
可変長数量
可変長数量

可変長数量

初級

説明

可変長数値のエンコードとデコードを実装します。

この演習の目標は、VLQのエンコード/デコードを実装することです。

要するに、このエンコードの目的は、バイト数を節約できるように整数値をエンコードすることです。各バイトで意味を持つのは下位7ビットだけです(右詰めで、いわばASCIIバイトのようなものです)。つまり、32ビットの値がある場合、それを7ビットのバイトの並びに分解する必要があります。もちろん、整数によってバイト数は変わります。一連のバイトのうちどれが最後のバイトかを示すには、最上位ビットを0のままにします。それより前のすべてのバイトでは、最上位ビットを1にします。

したがって、整数が0-127の範囲にある場合、それは1バイトで表せます。VLQは任意の大きさの数を扱えますが、この演習では32ビット符号なし整数に収まる数だけを対象にします。以下は、32ビット値としての整数と、それが変換される可変長数値の例です。

 NUMBER        VARIABLE QUANTITY
00000000              00
00000040              40
0000007F              7F
00000080             81 00
00002000             C0 00
00003FFF             FF 7F
00004000           81 80 00
00100000           C0 80 00
001FFFFF           FF FF 7F
00200000          81 80 80 00
08000000          C0 80 80 00
0FFFFFFF          FF FF FF 7F
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
PHP Exercism

可変長数量を始める準備はできましたか?

Exercismに登録すれば、11個のコンセプト122個の演習、そして本物の人間によるメンタリングとともに、PHPを学んでマスターできます。すべて無料です。