植物 植物
午前対策:平成8年春期 午前 問1〜問10

AOBA's Information Processing Education



1998/12/26

注意1:このページは、回線を切断した後でゆっくりご覧になってください(テキストを印刷する場合は、その取り扱いに注意してください)。

注意2:背景が白地の画面を長時間見つめていると頭が痛くなってしまいますので、ここは背景をグレーにしています。


「平成8年春期 第2種 午前」

問1 次の論理式と等しいものはどれか。

図1

問2 集合Aと集合Bの差集合C(C=A−B)を網掛けで示した図はどれか。

図2

問3 2進数の1.1011と1.1101を加算した結果を10進数で表したものはどれか。

ア 3.1    イ 3.375    ウ 3.5    エ 3.8    オ 3.9375

問4 次の10進数の小数を2進数に変換したとき、正確に表現できないものはどれか。

ア 0.05    イ 0.125    ウ 0.25    エ 0.375    オ 0.5

問5 16進数14けたで表される整数の最大値は、10進数で表すと何けたか。ただし、log102は0.301とする。

ア 14    イ 15    ウ 16    エ 17    オ 18

問6 浮動小数点表示においては、仮数部には正規化された表現を用いる。その理由として、最も適切なものはどれか。

ア 扱う数値の範囲が拡大できるため
イ 演算回路が簡単になるため
ウ 演算速度が速くなるため
エ 固定小数点数とみなして大小関係が保たれるため
オ 精度を保つため

問7 ビット列がオール1になるビット演算はどれか。

図3

問8 8ビットのレジスタに、ある負数が2の補数表示で入っている。これを4ビット右へ算術シフトした結果として、ありうるビット列はどれか。

ア 00000111    イ 00001111    ウ 10000000
エ 10000110    オ 11111111

問9 次の16ビットのレジスタの内容を2ビット左へ論理シフトしたものをaとし、3ビット右へ論理シフトしたものをbとしたとき、aとbの正しい関係はどれか。ここで、論理シフト後に空きになったビットには0が補われる。

図4

ア aはbの5倍である。
イ aはbの6倍である。
ウ aはbの12倍である。
エ aはbの24倍である。
オ aはbの32倍である。

問10 次の図は、2語(16ビット)からなる領域Aの内容を、右に4ビット回転シフトした結果を16進数で示している。

図5

 領域Aの元の内容を右に6ビット回転シフトした結果はどれか。

ア 3549    イ 4DAA    ウ 549B    エ A4DA    オ DAA4


解説

問1について
 この問題は、ド・モルガンの法則について知っていなければ、解答するのは難しいでしょう。

図6

ということで、以下に示すように式を展開してゆきます。

図7

問2について

図8

問3について
 地道に計算するだけです。

1.1011=1+2-1+2-3+2-4=1.6875
1.1101=1+2-1+2-2+2-4=1.8125
したがって、求める答えは
1.6875+1.8125=3.5 です。

問4について
 答えからいえば、10進数の小数を2進数に変換した時正確に表現できないのは、アの0.05です。ですが、この数学的な証明はちょっとややこしいので省略します(第一、覚える必要なんかありません)。
 ここでは、10進数の小数を2進数に変換する方法を復習しましょう。
 10進の整数を2進数に変換するには、2で割ってゆけばよかったですよね。それとは逆に、10進の小数を2進数に変換するには、2をかけてゆけばいいのです。
 例として、10進数の0.375を2進数に変換します。

図9

 この方法で解答群を2進数に変換すると、イは0.001,ウは0.01,エは0.011,オは0.1となりますが、アは0.00001100...となってしまいます。

問5について
 logの計算は面倒くさいですね。それどころか(普通の人であれば)、logの公式なんて、はるか昔に忘れ去っているでしょう。

 まず、16進数の14桁で表現できる(符号なし)整数の最大値は、1614−1です(これが分からなければ、この問題は飛ばしましょう)。最後の−1はけた数を求めるためにはほとんど影響がない減算なので、ここでは無視します。
 ところで、以前の平成6年秋期午前試験の解説で、a=bcの時は、c=logba の関係にあると言ったことを覚えてますか。これを用いれば、10進数のnけたで表すことのできる最大値をmとした時、n=log10m の関係にあることが分かると思います。
 このm部分に1614を代入します。

 n=log10(1614)=log1056
  =56×log102=56×0.301=16.856

 16.856ということは、16けたでは足りないので、求める答えは17です。

(参考)
1614=(2414=24×14=256

問6について
 浮動少数点数における正規化とは、仮数部の先行する0を抑制して、仮数部の小数点第1位に0以外の数がくるように調整することです。例えば、10進数の100を、底が16の浮動小数点で表現すると、

@ 100=(0.64)16×162
A 100=(0.064)16×163
B 100=(0.0064)16×164

など、いくつかの表現がありますが、この中で@が小数点第1位が0以外なので、これが正規化された数字です。

問7について
 考えるまでもなく、答えはオです。
 Aのあるビットが0ならば、Aの否定をとればそのビットは1になります。すると、0と1(または1と0)の論理和をとりますので、必ずそのビットは1になるはずです。

問8について
 算術シフトは、符号ビット(第0ビット,一番左に位置するビット)を除いてシフトするシフトの一種です。左シフトならば空いたビットに0が入りますが、右シフトの場合は、空いたビットに符号ビットと同じビットが入ります。
 この問題では負数ですので、符号ビットは1のはずです。これを4ビット右シフトするのですから、上位5ビット(第0〜第4ビット)はすべて1にならなければなりません。
 解答群の中で上位5ビットがすべて1なのは、オだけです。

問9について
 1ビット左シフトするということは、元の数を2倍する効果があり、2ビット左シフトするということは、4倍する効果があり、...nビット左シフトするということは、2n倍する効果があります。
 逆に、1ビット右シフトするということは、元の数を1/2する効果があり、2ビット右シフトするということは、1/4する効果があり、...nビット右シフトするということは、1/(2n)する効果があります。
 ということで、4倍したもの(a)と、1/8にしたもの(b)と比較するのですから、aはbの32倍になっています。

問10について
(6A93)16=(0110101010010011)2

これを右に6ビット回転シフトすれば
(0110110101010101)2

となります。このように回転シフトとは、あふれたビットが空いたビットに入るシフトの一種です。
(0110110101010101)2=(4DAA)16


解答

問1 エ    問2 ウ    問3 ウ    問4 ア    問5 エ
問6 オ    問7 オ    問8 オ    問9 オ    問10 イ