第三種電気主任技術者試験 / 令和6年度第三種電気主任技術者上期試験 機械科目 / 各問題解説 / 問182
certification-simodake-work

令和6年度第三種電気主任技術者上期試験 機械科目 問182 解説 問18(b) 令和6年度第三種電気主任技術者上期試験 機械科目 大問18(b)

設問図

問18(b) 問18 数の表現法について、次の(a)及び(b)の問に答えよ。 (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.0000 V が出力されるようにしたオフセット・バイナリ・コードを用いることが多い。この場合,出力電圧が正のときは,MSB = 1 となり,負のときは,MSB = 0 となる。 ディジタル入力値が (0000 0000)_2 のときのアナログ出力値が -5.0000 V であるオフセット・バイナリ・コードの D-A コンバータでは,ディジタル入力値が (0111 1000)_2 のときの出力電圧値は [ (ウ) ] V となる。 上記の記述中の空白箇所(ア)~(ウ)に当てはまる組合せとして,正しいものを次の(1)~(5)のうちから一つ選べ。

  1. (1) (ア) (1000 1000)_2, (イ) (1000 0111)_2, (ウ) -0.2734
  2. (2) (ア) (1111 1000)_2, (イ) (1000 1000)_2, (ウ) -0.3125
  3. (3) (ア) (1111 1000)_2, (イ) (1000 0111)_2, (ウ) -0.3125
  4. (4) (ア) (1000 1000)_2, (イ) (1111 1000)_2, (ウ) -0.3125 ✓ 正答
  5. (5) (ア) (1000 1000)_2, (イ) (1111 1000)_2, (ウ) -0.2734

解説

絶対値表示方式による負数の表現

絶対値表示方式では、8ビットのうち最上位ビット(MSB)を符号(0は正、1は負)に割り当て、残りの7ビットで絶対値を表します。10進数の8を2進数に変換すると100021000_2となります。これを8ビット表現に当てはめると、MSBを負を示す1とし、下位4ビットに10001000を配置することで、1000 100021000\ 1000_2となります。これが(ア)に該当します。

2の補数による負数の表現

2の補数は、ある正の数 nn に対して、ビットをすべて反転させた後に1を加えることで負数 −n-n を得る手法です。8ビット長の 88 は 0000 100020000\ 1000_2 と表せます。この各ビットを反転させると 1111 011121111\ 0111_2 となり、これに1を加えると 1111 100021111\ 1000_2 となります。これが(イ)の値です。この方式は、負の数も正の数と同じ加算回路で扱えるため、ディジタル演算において非常に効率的です。

オフセット・バイナリ・コードによるD-A変換

D-Aコンバータにおけるオフセット・バイナリ・コードは、バイナリ値の範囲を電圧の全域に割り当てる方式です。8ビットのデータは 00 から 255255 までの 256256 段階(282^8)の数値を表現できます。

この問題では、ディジタル入力が 0000 000020000\ 0000_2(数値0)のときに −5.0000 V-5.0000\ \text{V} を出力し、また 1000 000021000\ 0000_2(数値128)のときに 0.0000 V0.0000\ \text{V} を出力するように設定されています。このとき、1ビットあたりの電圧変化分(分解能)は次のように求められます。

分解能=0 V−(−5.000 V)128−0=5128=0.0390625 V/bit\text{分解能} = \frac{0\ \text{V} - (-5.000\ \text{V})}{128 - 0} = \frac{5}{128} = 0.0390625\ \text{V}/\text{bit}

入力値が 0111 100020111\ 1000_2 の場合、これを10進数に直すと 120120 です。この入力に対応する出力電圧は、基準の −5 V-5\ \text{V} から数えて120ステップ分だけ電圧が上昇した値となります。

出力電圧=−5.0000+(120×0.0390625)=−5.0000+4.6875=−0.3125 V\text{出力電圧} = -5.0000 + (120 \times 0.0390625) = -5.0000 + 4.6875 = -0.3125\ \text{V}

これが(ウ)の値となります。

オフセット・バイナリ・コードにおける入力値とアナログ出力の関係式に数値を当てはめてみると、ディジタル信号がアナログの電圧値に変換される様子が見えてきます。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう