今回は令和6年度上期 機械科目 B問題18を解説します。r進法で表された数の方程式からrの値を求める(a)と、8ビット固定長の絶対値表示方式・2の補数表示、そしてD-Aコンバータのオフセット・バイナリ・コードの出力電圧を求める(b)の2段構成の問題です。★情報28(平成22年度B問題18)と設問文・図・選択肢の数値がすべて同一で、実質的に同じ問題の再出題です。
(a)はr進法の位取り展開を10進の等式にしてrについての2次方程式を解きます。(b)は絶対値表示方式・2の補数表示それぞれの符号ビットの扱いと、D-Aコンバータの直線式Vd=(分解能)×d-オフセットを使って計算します。
ほぼ同じ問題が 【機械】平成22年度B問題18 でも出題されています。出題パターンが固定なので、セットで解けば確実な得点源になります。
令和6年度上期 機械科目 B問題18:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

電験3種 機械科目 【情報】 令和6年度上期 B問題18
数の表現法について,次の(a)及び(b)の問に答えよ。
(a) 10進法で表される正の整数Nは,10進法の2以上の整数rを用いて,次式のように表すことができる。N = anrn + an-1rn-1 + … + a1r + a0 ただし,aiは整数であり,0≦ai<r(i=0,1,…,n)である。このとき,Nをr進法で次のように表現することとする。(anan-1…a2a1a0)r この表現方法によって次の計算が成り立つとき,rの値として,正しいものを次の(1)〜(5)のうちから一つ選べ。(122)r-(42)r=(40)r
(b) 8ビットの固定長で,正負のある2進法の数値を表現する場合,次のような①及び②で示す方式がある。また,D-Aコンバータにおいては次の③で示す方式が用いられる。①最上位ビット(左端のビット,以下MSBという)を符号ビットとして,残りのビットでその数の絶対値を表す方式は,絶対値表示方式と呼ばれる。この場合,MSB=0が正(+),MSB=1が負(-)と約束すると,10進数の-8は(ア)となる。②7ビット長で表された正の数nに対して,-nを8ビット長のnの2の補数で表す方式がある。この方式による場合,10進数の-8は(イ)となる。この方式においても,MSB=1は負の整数,MSB=0は正の整数を示すことになる。この方式は,2進数の減算に適している。③D-Aコンバータでは,ディジタル入力量とアナログ出力量が比例の関係にある。8ビットのD-Aコンバータではディジタル入力量として,(1000 0000)2を与えた場合に,0.0000Vが出力されるようにしたオフセット・バイナリ・コードを用いることが多い。この場合,出力電圧が正のときは,MSB=1となり,負のときは,MSB=0となる。ディジタル入力値が(0000 0000)2のときのアナログ出力値が-5.0000Vであるオフセット・バイナリ・コードのD-Aコンバータでは,ディジタル入力値が(0111 1000)2のときの出力電圧値は(ウ)Vとなる。
上記の記述中の空白箇所(ア)〜(ウ)に当てはまる組合せとして,正しいものを次の(1)〜(5)のうちから一つ選べ。
(1)5 (2)6 (3)7 (4)8 (5)9
(ア) (イ) (ウ) (1) (1000 1000)2 (1000 0111)2 -0.2734 (2) (1111 1000)2 (1000 1000)2 -0.3125 (3) (1111 1000)2 (1000 0111)2 -0.3125 (4) (1000 1000)2 (1111 1000)2 -0.3125 (5) (1000 1000)2 (1111 1000)2 -0.2734
出題のポイント:r進法・符号表現・D-A変換を切り分ける

複合問題ですが、(a)はr進法の位取り展開、(b)前半は絶対値表示と2の補数、後半はオフセット・バイナリの直線式という三つの独立した処理です。方式を混ぜず、各段階の基準点とビットの役割を確認します。
ポイント解説:位取り展開と3種類の2進コード

(a)のr進法の方程式は、各桁を位取り展開して10進の等式に直すと、rについての2次方程式になります。因数分解できる形に整理するのがコツです。
(b)は絶対値表示方式・2の補数表示という2つの符号表現方式と、D-Aコンバータのオフセット・バイナリ・コードの直線式Vd=(分解能)×(d-中心値)を扱います。★本問は情報28(平成22年度B問題18)と実質的に同一の問題です。
問題の解説:r=6と8ビット表現を順に求める

STEP1 (a) r進法の方程式を10進の等式に展開する
$$(122)_r-(42)_r=(40)_r$$
各項を展開すると,$$(r^2+2r+2)-(4r+2)=4r$$
STEP2 (a) rの2次方程式を解く
$$r^2+2r+2-4r-2=4r\Rightarrow r^2-6r=0\Rightarrow r(r-6)=0$$
rは2以上の整数なので,r=6。これは選択肢(2)です。
STEP3 (b)① 絶対値表示方式で-8を表す
10進数8を2進数にすると(0000 1000)2。MSBを負の符号ビット1に置き換えると,
$$(1000\ 1000)_2$$
STEP4 (b)② 2の補数表示で-8を表す
7ビット表現の8=(0001000)を反転し1を加える2の補数操作を8ビットで行うと,
$$(1111\ 1000)_2$$
STEP5 (b)③ D-Aコンバータの直線式でVdを求める
(0000 0000)2=0で-5.0000V,(1000 0000)2=128で0Vとなる直線式は,
$$V_d=\frac{5}{128}d-5$$
d=(0111 1000)2=120を代入すると,$$V_d=\frac{5}{128}\times120-5=-0.3125\ \text{V}$$
以上より(ア)(1000 1000)2(イ)(1111 1000)2(ウ)-0.3125の組合せである(4)が(b)の正解です。
答え:(a)-(2),(b)-(4)
💡 覚え方
r進法の方程式は位取り展開して10進の等式にすればrの多項式方程式になる。D-Aコンバータのオフセット・バイナリ・コードは直線式Vd=(分解能)×d-(オフセット)で計算する。
⚠️ よくある間違い
絶対値表示方式と2の補数表示の符号ビットの扱いを混同しない。D-Aコンバータの直線式で分解能の係数(本問では5/128)を求め忘れない。
まとめ
| (a) rの方程式 | r²-6r=0 |
| (a) 答え | r=6 |
| (b)(ア) 絶対値表示 | (1000 1000)2 |
| (b)(イ) 2の補数 | (1111 1000)2 |
| (b)(ウ) Vd | -0.3125V |
| 答え | (a)-(2),(b)-(4) |
▼あわせて解きたい関連問題
・r進法の方程式とD-Aコンバータ(平成22年度の同一問題):【機械】平成22年度B問題18
・マイクロプロセッサのサイクルタイムと動作周波数:【機械】令和5年度上期B問題18

コメント