応用情報技術者 2014年 秋期 午前2 問02
問題文
ビットを用いて整数を表現するとき、符号なし固定小数点表示法で表現できる最大値をとし、BCD (2進化10進符号)で表現できる最大値をとする。が大きくなるとはどれに近づくか。
選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
二進とBCDの最大値比【午前2解説】
正解の理由
4nビットの符号なし固定小数点表示での最大値を 、BCD(4ビットで1桁の十進)での最大値を とすると、
です。
が大きくなると 1 は無視できるため、 となります。したがって選択肢のうち エ が正しいです。
が大きくなると 1 は無視できるため、 となります。したがって選択肢のうち エ が正しいです。
(補足)4ビットあたりの最大値は固定2進で15、BCDで9であることは正しいですが、桁数 に伴う表現域は「桁ごとの累乗」で決まるため、比例(線形)や単に とするのは誤りです。正しくは基数そのもの(16 と 10)の累乗が表現域を支配します。
解法ステップ
- 4nビット全体での最大値(全ビットが1)の値を求める:。
- BCDで各桁が0–9まで使える最大値を求める:。
- 比 を書く:。
- では -1 は無視できるので、おおよそ 。よって エ。
選択肢別の誤答解説
-
ア:
線形(比例)増加を仮定しているため誤り。表現域は桁数に対して累乗的(指数的)に増えるため、係数を掛けるだけでは表せません。 -
イ:
一見妥当に見える理由は「1桁あたりの最大値が15と9だから」と考えるためですが、誤りです。4ビット当たりの最大値が15や9であることは正しいものの、各桁の重み(基数)が重要で、二進の桁は16進相当の重みを持ちます。実際の全体最大は であり、 ではありません。数値例: のとき実際の比は 、 とずれがあります。 -
ウ:
これも線形の誤り。基数の比 は1桁当たりの「状態数の比」ですが、桁数 に対しては累乗で増えるため、掛け算では表現できません。 -
エ:
正答。二進(4ビット単位)は1桁あたり16状態、BCDは10状態であり、桁数 に伴って状態数が累乗で増えるため、比は に近づきます。
よくある誤解
- 15や9が「4ビットあたりの最大値ではない」とする誤り:実際には4ビットの全1は15、BCDでの1桁の最大は9で正しいです。ただしそれをもって全体の比を や と扱うのは、桁重み(基数)の効果を無視した誤りです。
- 「桁ごとの合計」をそのまま掛け合わせてしまう:位置づけ(重み)が違うため、桁ごとの最大値を単純に掛ける考え方は誤りです。
- BCDは4ビットをすべて有効に使っていると誤解する:BCDでは4ビットのうち6状態が未使用で、情報密度が低くなります。
補足コラム
- 情報密度の観点:4ビットで表せる状態は16通り。BCDはそのうち10通りしか使わないため、4ビット1桁あたりの情報量は ビットに相当します。したがって実効効率は (約83%)です。
- 実務でのBCD利用理由:人間の扱いやすさ(小数の正確な表現、金融計算の丸め誤差回避、表示の簡便さ)を優先した設計選択であり、メモリ効率は二進の方が良いことが多いです。
- 本問は「基数(radix)による表現域の成長が累乗(指数)で決まる」ことを確認する良問です。
FAQ
Q1: なぜ を無視していいのですか?
A1: と の比で が大きくなると、両者の の影響は相対的に無視できるため近似で を使います。
A1: と の比で が大きくなると、両者の の影響は相対的に無視できるため近似で を使います。
Q2: 符号付き(2の補数)ならどうなる?
A2: 符号付きでは表現可能な正の最大値が半分程度になるため定数因子は変わりますが、同様に基数の累乗支配(16^n 対 10^n)のため比の挙動は依然として に近い成長傾向を示します(符号処理の影響は定数的)。
A2: 符号付きでは表現可能な正の最大値が半分程度になるため定数因子は変わりますが、同様に基数の累乗支配(16^n 対 10^n)のため比の挙動は依然として に近い成長傾向を示します(符号処理の影響は定数的)。
Q3: パックBCD(複数桁を詰める方式)は関係しますか?
A3: 本問の前提は「4nビットを使い、BCDで1桁につき4ビット割当て」という形です。別の詰め方をすれば計算式は変わりますが、基数の差が累乗として効いてくる点は同様です。
A3: 本問の前提は「4nビットを使い、BCDで1桁につき4ビット割当て」という形です。別の詰め方をすれば計算式は変わりますが、基数の差が累乗として効いてくる点は同様です。
関連キーワード: BCD、固定小数点、表現範囲、ビット効率、基数、指数的成長、情報密度、16進表現

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

