0

2 バイトのシーケンスが与えられ、それを Base64 でエンコードするように求められます。

00000001 00010001

私が理解していることから、Base64 を使用する場合は 6 ビットのシーケンスしかエンコードできません。16 ビットは 6 で割り切れないので、ちょっと行き詰まっています。

私が見ることができる解決策は、指定された 2 バイト シーケンスを 3 バイト シーケンスに変換して、6 で割り切れるようにすることです。しかし、初期シーケンスの値を変更せずにこれを行うにはどうすればよいでしょうか?

4

1 に答える 1

1

基本的に、次の 6 ビットの倍数までゼロでパディングし、最後の 4 文字シーケンスを=s でパディングします。最後の 2 つのゼロ バイトは完全な入力バイトを構成しないため、デコーダはそれらを無視することを認識しています。(=パディングは完全に必要というわけではありませんが、最終結果を常に 4 文字の倍数にするのが通例です。)

たとえば、取得したシーケンスは次のとおりです。

00000001 00010001

これを 6 つのグループに分割すると、次のようになります。

000000 010001 0001

ゼロで埋める:

000000 010001 000100

ASCII に変換:

ARE

そしてそれを埋めます:

ARE=
于 2013-01-21T06:14:07.463 に答える