ITパスポート 2013年 秋期 問76
問題文
2バイトで1文字を表すとき、何種類の文字まで表せるか。
選択肢
ア:32,000
イ:32,768
ウ:64,000
エ:65,536(正解)
🔒 解説は解答すると表示されます
2バイトで1文字を表すとき、何種類の文字まで表せるか。【ITパスポート 解説】
正解の理由
コンピュータの情報はビット(bit:情報の最小単位で「0」か「1」のどちらかを表す)で扱います。バイト(byte:通常8ビットで構成されるデータのまとまり)を基準に考えると、2バイトは合計で16ビットになります。16ビットが取り得る組み合わせの数は です。これを計算すると となり、選択肢の中では エ が正しい値です。
(つまり「2バイトで1文字を表す」=「16ビットで1文字を表す」→「2の16乗通り」→ 65,536種類)
解法ステップ
- 2バイト = 8ビット × 2 = 16ビット と確認する。
- ここで「ビット」は 0/1 の2通りの値を取れる最小単位です。
- ビットが16個あるときの組み合わせ数は 。
- ビット1つで2通り、2つで 、…、16個で 。
- を計算する。
- を使うと 。
- よって答えは 65,536(選択肢の エ)。
(簡単な Python 計算例)
>>> 2**16
65536
選択肢別の誤答解説
- ア: 32,000
- 単なる丸めや「32k」といった目安値の誤用です。正確な2の累乗ではありません。
- イ: 32,768
- これは (15ビット)に相当する値です。2バイト=16ビットと勘違いして1ビット分足りない場合に出る誤りです。
- ウ: 64,000
- 64,000は十進法での丸めた値(=約64k)で、とは異なります。1024(2^10)を1000で近似してしまうことから生じる誤差です。
- エ: 65,536
- 16ビット = = 65,536。正しい。
よくある誤解
- ビットとバイトを混同する
- 「2バイトを2ビットだと思う」「1バイトは2進数で1000と考える」などのミスが多いです。1バイトは8ビットです。
- 1024と1000を取り違える(キロの扱い)
- コンピュータでは 1,024(=2^10)を「キロ(k)」の近似として使うことが多く、1000で近似すると誤差が出ます。 が正しい計算です。
- 文字数とバイト数を同一視する
- 実際の文字コードでは、1文字が必ず2バイトで表されるわけではありません(後述の補足参照)。
補足コラム
- 「2バイトで1文字」というのは「16ビットで1文字」を意味します。歴史的には「16ビット文字」と呼ばれ、日本語の一部文字集合を扱うために用いられてきました。
- 現代では Unicode(ユニコード:国際的な文字の共通規格)の採用が進んでいます。Unicode の基本多言語面(BMP: Basic Multilingual Plane)は 65,536( から )のコード位置を持ちますが、Unicode全体は追加の補助平面を含めて までのコード位置を持ちます。
- エンコーディング(文字をバイト列に変換する方法)には UTF-8(UTF-8:Unicode Transformation Format - 8-bit、可変長のエンコーディング)、UTF-16(16ビット単位で可変長)などがあり、1文字あたりのバイト数は固定とは限りません。つまり「2バイト=必ず1文字」ではない点に注意してください。
FAQ
Q. 「2バイトで表せる」って、0から65535までの番号が使えるということですか?
A. はい。16ビットなら 0 から (= 65,535)までの数値を表せるので、合計で 65,536 種類の異なる値(番号)を表せます。
A. はい。16ビットなら 0 から (= 65,535)までの数値を表せるので、合計で 65,536 種類の異なる値(番号)を表せます。
Q. Unicodeは65,536を超える文字も扱えますか?
A. はい。Unicodeは基本面のほかに補助平面もあり、合計で のコード位置を持ちます。UTF-8やUTF-16などの可変長エンコーディングでこれらを表現します。
A. はい。Unicodeは基本面のほかに補助平面もあり、合計で のコード位置を持ちます。UTF-8やUTF-16などの可変長エンコーディングでこれらを表現します。
Q. 「2バイト=文字」と考えて良い場面は?
A. 古い固定長の内部表現や特定の文字コード(例:UTF-16の一部機能)では「16ビット単位で扱う」という設計がありますが、実際のファイルや通信では可変長エンコーディングが多いので、常に当てはまるわけではありません。
A. 古い固定長の内部表現や特定の文字コード(例:UTF-16の一部機能)では「16ビット単位で扱う」という設計がありますが、実際のファイルや通信では可変長エンコーディングが多いので、常に当てはまるわけではありません。
関連キーワード: バイト、ビット、文字コード、2バイト文字、16ビット、、65536、符号化方式、UTF-8、UTF-16、Unicode

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

