30kバイトのJPEGファイルを電子メールに添付するとき,実際の転送データはおよそ何kバイトになるか。
ここで,添付ファイルはMIME base64を用いてエンコーディングされるものとする。
正答3
解説
正解は3です。
電子メールは本来テキストしか送れないので、画像などのバイナリデータはMIME(Multipurpose Internet Mail Extensions)の規則でテキストに変換して添付します。
base64は、元のデータを6ビットずつ区切り、64種類の英数字・記号に置き換える方式です。
【計算】
base64では、3バイト(24ビット)が4文字(4バイト)に変換されます。
したがって、データ量は約4/3倍になります。
30kバイト×4/3=40kバイトです。
【選択肢別解説】
1:× 20kバイトは、データ量が減ると考えた値です。
base64は圧縮ではなく変換なので、データ量は増えます。
2:× 30kバイトは、変換してもデータ量が変わらないと考えた値です。
3バイトを4文字に変換するので、約4/3倍に増えます。
3:○ 30kバイト×4/3=40kバイトで、転送データはおよそ40kバイトになります。
4:× 60kバイトは、データ量が2倍になると考えた値です。
base64による増加は約4/3倍で、2倍にはなりません。
【ポイント】
base64では、6ビットを1文字(8ビット)で表すので、データ量は8/6=4/3倍になります。
実際には76文字ごとの改行なども加わるため、わずかにそれより大きくなります。