2

Base 64 は 3 バイト (24 ビット) を取り、これらを 4*6 ビットで表します。データが 3 で割り切れない場合、余分なバイトは一種のパディングと見なされますか? このパディングは、base64 表現がバイナリ エンコーディングよりも大きいことに責任がありますか?

または、base64 の方が大きいのはなぜですか?

4

2 に答える 2

5

Base64 は、バイト内の 6 ビットのみを使用して情報を格納するため、サイズが大きくなります。したがって、3 バイトの実際の情報に対して 4 バイトの送信データが必要になります。

つまり、base64 はそのバイトの 1 つに 6 ビットのデータしか格納していませんが、そのバイトには 8 ビットの格納スペースが必要です。

于 2013-10-02T11:51:19.683 に答える
2

これらの 6 ビット チャンクは、通常、一部のビットがゼロに設定された 8 ビット バイトに格納されるため、Base64 の方が大きくなります。したがって、完全に使用された 3 バイトから部分的に使用された 4 バイトに移動し、事実上、より多くのバイトが使用されることになります。同じ数のビットが使用されますが、より多くのバイトに分散されます。パディングはソースの最後の 1 バイトまたは 2 バイトにのみ適用されますが、この 3 対 4 の増加はすべてのソース バイトに対して発生するため、エンコーディングによってボリュームが増加します。

于 2013-10-02T11:54:00.263 に答える