ソフトⅡコース担当 ブログのおにーさまこと高橋です。
学園祭ネタはすでに書かれているので、先週実施された基本情報技術者試験の午後問題解説を書きたいと思います。
今回は問3の設問1です。問題はIPAのサイトに掲載されていますので、そちらを参照してください。
設問1は、電子メールでバイナリデータを転送する際、どのようにエンコードして送信しているかという問です。知っている人にとっては、とても簡単な問題だったでしょう。詳しく知らない人も、問題をきちんと読み進めれば、それほど難しくなかったのではないでしょうか。
問題のエンコード方法をまとめると次のようになります。
quoted-printable
次の規則でバイトを変換する。
- 次の1バイトは、「=XX」(XXは、対象バイトを16進表記した2文字)に変換する
- 制御文字(16進数で00から1Fまで)
- =(16進数で3D)
- 先頭ビットが1(16進数で80からFFまで)
- 上記以外の1バイトは変換しない
この規則で問題のテキストを考ます。先頭の1文字は16進数でC2A9で、この2バイトは先頭ビットが1であるので変換対象です。それぞれのバイトを「=XX」の形式に変換し並べると、「=C2=A9」となります。残りの文字は変換対象でないので、そのまま並べると「=C2=A9 IPA 2012.」となります。以上より、空欄a1には「quoted-printable」が入ります。
base64
次の規則でバイトを変換する。
- 文字列の各文字コードを2進数にして並べる。
- 先頭から6ビットごとに区切る。
- あらかじめ決められている対応表に基づき変換する。
問題にはこの対応表がありませんが、解けるようになっています。なぜなら、実際の変換は空欄a1とa2で必要ですが、a1が「quoted-printable」であるので、a2は「base64」となります。一応手順を考えると、問題のテキストは16進表記で「C2A92049504120323031322E」です。手順を追って変換します。
このように「quoted-printable」では、図形文字は1バイトのまま、図形文字以外は3バイトに変換されます。「base64」では、データの種類に関係なく3バイトが4バイトに変換されます。以上より、大部分が図形文字であれば、「quoted-printable」の場合バイト数にほとんど変化がないことになります。バイナリーデータの場合は、「base64」の方が増えないといえます。従って、空欄a3には「quoted-printable」、空欄a4には「base64」が入ります。以上を合わせるとaの解答はエとなります。
UTF-8では、平仮名1文字を3バイトで表します。その3バイト全ての先頭ビットが1です。「quoted-printable」では、先頭ビットが1のバイトは3バイトに変換されるので、平仮名1文字は9バイトになります。従って平仮名6文字は54バイトになります。bの解答はエとなります。
2012年(平成24年度)秋期の解説
- 平成24年度 秋 基本情報技術者試験 【問5】
- 平成24年度 秋 基本情報技術者試験 【問12】
- 平成24年度 秋 基本情報技術者試験 【問8】
- 平成24年度 秋 基本情報技術者試験 【問4】
- 平成24年度 秋 基本情報技術者試験 【問2】(その2)
- 平成24年度 秋 基本情報技術者試験 【問2】(その1)
- 平成24年度 秋 基本情報技術者試験 【問1】
- 平成24年度 秋 基本情報技術者試験 【問3】(その2)
- 平成24年度 秋 基本情報技術者試験 【問3】(その1)
- Date:
- この記事を
友だちに教える - LINE
- - HatenaBookmark
- GooglePlus