ITパスポート 2018年 春期 問75
問題文
A~Zの26種類の文字を表現する文字コードに最小限必要なビット数は幾つか。
選択肢
ア:4
イ:5(正解)
ウ:6
エ:7
🔒 解説は解答すると表示されます
文字を表現するのに必要な最小ビット数【ITパスポート 解説】
正解の理由
26種類の文字を区別するには、各文字に固有の2進の組み合わせが必要です。1ビットは2種類の状態(0か1)を表します。ビットを増やすごとに使える組み合わせ数は倍になります。 は26に足りませんが、 は26以上です。したがって、最小限必要なビット数は5ビットです。問題の選択肢では イ がこの「5」を示しています。
解法ステップ
- 「ビット数 で表せる組み合わせ数」は であることを確認します。
- 理由:各ビットが0か1の2通りだから、 個で 通り。
- 必要な組み合わせ数(この場合は26)を満たす最小の を探します。
- 試しに小さい を計算:
- (不足)
- (これで足りる)
- 試しに小さい を計算:
- したがって最小の は5。これが答えです。数学的には と表せます( は切り上げ)。
選択肢別の誤答解説
- ア: 4
- で、26種類を区別するには不十分です。4ビットでは足りません。
- イ: 5
- により26種類を表現できます。かつ「最小」の条件を満たします。よって正解です。
- ウ: 6
- と十分ですが、問題は「最小限必要なビット数」を問うています。6は過剰であり最小ではありません。
- エ: 7
- ともっと過剰です。歴史的にASCII(アスキー。英語の基本文字と記号を表す規格)は7ビットで表していましたが、本問の条件(26文字のみ)では不要です。
よくある誤解
- 「26だからビットも26必要だ」と考える。
- 誤りです。1ビットで2種類、2ビットで4種類…という倍々に増える性質を理解してください。
- 「5ビットでは余りがあるからダメ」と思う。
- 問題は「最小限必要なビット数」を問うています。余り(未使用の組み合わせ)があっても構いません。重要なのは「26を表せる最小のビット数」です。
- 「バイト(8ビット)で考えなければ」と混同する。
- 実務では1バイト = 8ビット単位で扱うことが多いですが、理論的な最小ビット数はビット単位で計算します。
補足コラム
- 大文字と小文字の両方(A~Z と a~z)を区別するなら合計52種類必要です。 では足りず、 で足ります。したがってその場合の最小ビット数は6です。
- 数字や記号も含めるとさらに多くの組み合わせが必要です。文字集合の総数をまず数えることが基本です。
- 計算機的には対数を使って簡潔に表せます: (Nは必要な種類数)。
- 例: のとき を切り上げて 。
短いPython例(最小ビット数を求めるコード):
def min_bits(n):
bits = 0
while 2**bits < n:
bits += 1
return bits
print(min_bits(26)) # 出力: 5
FAQ
Q1: なぜ「2のべき乗」を使うのですか?
A1: 各ビットは2通りの状態(0/1)を持ち、独立に組み合わせられるため、可能な組み合わせ数は になります。
A1: 各ビットは2通りの状態(0/1)を持ち、独立に組み合わせられるため、可能な組み合わせ数は になります。
Q2: 「最小限必要」とはどういう意味ですか?
A2: 必要な種類数を満たす「最も小さい」ビット数を指します。余分に大きいビット数も可能ですが、問題の意図は最小を求めることです。
A2: 必要な種類数を満たす「最も小さい」ビット数を指します。余分に大きいビット数も可能ですが、問題の意図は最小を求めることです。
Q3: 実際の文字コードはどうなっているのですか?
A3: 実務ではASCII(7ビット)や拡張ASCII(8ビット)、さらにUnicode(複数バイトで多数の文字を表現)などがあります。設計上は用途に応じて必要なビット数を決めます。
A3: 実務ではASCII(7ビット)や拡張ASCII(8ビット)、さらにUnicode(複数バイトで多数の文字を表現)などがあります。設計上は用途に応じて必要なビット数を決めます。
関連キーワード: ビット、文字コード、2進法、組合せ、ログ2、ASCII

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

