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

出典:一般財団法人 電気技術者試験センター「平成22年度 第三種電気主任技術者試験」機械科目 B問題18
電験3種 機械科目 【情報】 平成22年度 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は(イ)となる。③D-Aコンバータでは,8ビットのディジタル入力量(1000 0000)2を与えた場合に0.0000〔V〕が出力されるオフセット・バイナリ・コードを用いることが多い。ディジタル入力値が(0000 0000)2のときのアナログ出力値が-5.0000〔V〕であるオフセット・バイナリ・コードの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) (1000 1000)2 (1111 1000)2 -0.3125 (4) (1111 1000)2 (1000 0111)2 -0.3125 (5) (1000 1000)2 (1111 1000)2 -0.2734
(a) r進法の方程式を10進の式に直す
(122)r のような表記は「位取り」を意味します——各桁に r の累乗を掛けて足すだけです。
係数はそのまま各桁の数字
一の位は0
★r=6
r=0 は条件に合わないので、r=6 が答えです。各桁に4 が使われていることからも、r は5 以上でなければならないと分かります。


(b) 負の数を表す3つの方式
本問は「−8 をどう表すか」を2通り、さらにD-A変換で1通り——合計3つの表現方式が登場します。
| 方式 | −8(8ビット) | 考え方 |
| 絶対値表示 | ★1000 1000 | MSB を符号、残り7ビットで絶対値 |
| 2の補数 | ★1111 1000 | 全ビット反転して+1 |
| オフセット・バイナリ | 0111 1000 | 中央(1000 0000)を0 とみなす |
MSB を1 にするだけ
2の補数
絶対値表示は分かりやすいのですが、0 が2通り(0000 0000 と1000 0000)できてしまうという欠点があります。足し算の回路も複雑になります。
2の補数なら、負の数も普通に足すだけで正しい答えが出る——だから実際のコンピュータはすべて2の補数です。「反転して+1」という手順で覚えてください。
(ウ) D-Aコンバータの出力電圧
2つの基準点が与えられています——これで直線が1本決まります。
問題文より
(1000 0000)2=128
傾き=5÷128
64+32+16+8
★答え
128 のうち120 なので、あと8 足りません——1段あたり5/128=0.0390625 V なので、その8倍で0.3125 V だけマイナス側。この見方なら暗算に近い形で出せます。

⚠️ よくある間違い
本問は令和6年度上期 B問題18 と設問も数値も同一ですが、選択肢の並び順が違うため答えの番号が変わります。
本問の(b)は(3)、令和6年度上期は(4)——過去問を番号で覚えていると外します。
覚えるのは「1000 1000/1111 1000/−0.3125 V」という中身。本番では必ず値そのもので照合してください。
もう1つ、(ウ)の−0.2734 という選択肢は5/127 や5/255 で計算した場合の値——基準点の取り方を誤ると、この数字に落ちます。
オフセット・バイナリと2の補数の関係
この2つは、実はMSB を反転しただけの関係です——知っておくと変換が一瞬で済みます。
| 10進 | 2の補数 | オフセット・バイナリ |
| +127 | 0111 1111 | 1111 1111 |
| +1 | 0000 0001 | 1000 0001 |
| 0 | 0000 0000 | ★1000 0000 |
| −1 | 1111 1111 | 0111 1111 |
| −128 | 1000 0000 | 0000 0000 |
左右を見比べると、MSB だけが逆——他のビットは同じです。だからMSB を1つ反転させるだけで相互に変換できます。
D-Aコンバータがオフセット・バイナリを使う理由は、入力が0 から255 まで増えると出力も単調に増えるから——回路が素直に作れるのです。2の補数だと、途中で不連続に見えてしまいます。
⏱️ 本番での進め方
①(a) 位取り展開して2次方程式。r(r−6)=0 でr=6。
②(b) 絶対値表示はMSB を1 にするだけ。
③ 2の補数は「反転して+1」。−8 は1111 1000。
④(ウ) 2点から直線式。V=(5/128)d−5 に d=120。
💡 覚え方
「2の補数は反転して+1」——これだけで負の数が扱えます。D-A変換は「2点が分かれば直線が引ける」——傾きは電圧範囲÷段数です。
まったく同じ問題が令和6年度上期 B問題18で再出題されています(情報:r進法の方程式とD-Aコンバータ)。答えの番号だけが違うので、比べながら解くと理解が深まります。

6進法のまま筆算して検算する
r=6 が求まったら、元の式に戻して確かめましょう——10進に直さず、6進法のまま引き算しても同じです。
| 表記 | 10進での値 | 計算 |
| (122)6 | 36+12+2=50 | — |
| (42)6 | 24+2=26 | — |
| 差 | ★24 | 50−26 |
| (40)6 | 4×6=24 | ★一致 |
確かに成り立ちます——方程式を解いた後の検算は30秒で済みます。B問題は配点が高いので、この手間は惜しまないでください。
桁に使える数字からも絞れる
与式には 4 という数字が使われています——r進法では各桁は 0 以上 r 未満。だから r は5 以上でなければなりません。
選択肢は5、6、7、8、9——この条件だけでは絞れませんが、方程式を解く前の見通しにはなります。もし選択肢に3 や4 があれば、計算せずに除外できたわけです。
まとめ
| (a) 答え | r=6 |
| (b)(ア) | (1000 1000)2 |
| (b)(イ) | (1111 1000)2 |
| (b)(ウ) | -0.3125V |
| 答え | (a)-(2),(b)-(3) |
▼あわせて解きたい関連問題
・r進法の方程式とD-Aコンバータ(令和6年度上期の再出題):【機械】令和6年度上期B問題18
・マイクロプロセッサのサイクルタイムと動作周波数(平成24年度):【機械】平成24年度B問題18

コメント