問題


方針
「進数計算」「2進数の表現」に関する問題です。(平成22年問18と同じ問題ですが、選択肢の順番が違います)
(a)については、問題で与えられている式に当てはめていこうと思います。
(b)については「10進数と2進数の対応」「符号付き2進数」「2の補数」「2進数を10進数に変換」を使って計算します。
解法
(a)
問題文より、(122)rー(42)r=(40)rについて、
(anan-1…a1a0)rの表現にすると、(122120)rー(4120)r=(4100)rとなります。
N=anrn+an-1rn-1…a1r+a0の表現にすると以下になります。
(1×r2+2×r1+2×r0)ー(4×r1+2×r0)=(4×r1+0×r0)
r2+2r+2ー4rー2=4r
r2ー6r=0
r(rー6)=0
r=6
(b)ー①
「10進数と2進数の対応」
1→(0001)、2→(0010)、3→(0011)、4→(0100)、5→(0101)
6→(0110)、7→(0111)、8→(1000)、9→(1001)、10→(1010)
11→(1011)、12→(1100)、13→(1101)、14→(1110)、15→(1111)
「符号付き2進数」
絶対値表示方式:単純に上位1ビットを符号にしたもの。
(1000 1000)2 = ー8
最上位ビットを符号にして残りのビットで絶対値を表すので「絶対値表示方式」となります。
従って(ア)は上記の通り、(1000 1000)2となります。
(b)ー②
「2の補数」
16進数(271)16を2の補数にするには
①2進数に変換する。(0010 0111 0001)2
②各ビットを反転する。(1101 1000 1110)2
③+1する。(1101 1000 1111)2
「8」の2の補数を求めます。
①2進数に変換する。(0000 1000)2
②各ビットを反転する。(1111 0111)2
③+1する。(1111 1000)2
(b)ー③
「2進数を10進数に変換」
(1100)2→ (23×1)+(22×1)+(21×0)+(20×0)=12
問題文より、(1000 0000)2=27=128で、0.0000Vが出力されます。
また、(0000 0000)2=0のとき、ー5.0000Vが出力されます。
10進数で+1の変化で5/128≒0.0390625V増加することがわかります。
求める入力値は10進数で、(0111 1000)2=26+25+24+23=64+32+16+8=120となります。
10進数0のときー5.0000Vで+120なので、ー5.0000+(120×0.0390625)=ー0.3125Vとなります。
解答
(a)の解答は(2)となります。
(b)の解答は(4)となります。