平成27年度 III-4

科目: 専門科目 / 分野: 情報工学部門 / 年度: 平成27年度

III-4 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

整数を8ビットの2の補数表現で表しているとき、00001010と11110001の和の10進数表現を求める問題。正答は−5。

解説

この問題で問われていること

2の補数表現による、2進数の加算と、その結果の10進数への変換を問う問題。

解き方

① 8ビットの2の補数: 普通の0〜255の数として足し、結果が128以上なら256を引く
② 00001010=10、11110001=241 → 10+241=251 → 251−256=−5
③ −5(②)。250や251は256を引き忘れた値

正解が正しい理由

00001010は+10。11110001は、最上位ビットが1なので負数で、ビット反転して1を加えると00001111(=15)。したがって−15である。和は、10+(−15)=−5。2進数で加算すると、00001010+11110001=11111011。これは最上位ビットが1の負数で、ビット反転して1を加えると00000101(=5)、したがって−5である。よって②が正しい。

この問題で必要な基礎

■ 2の補数表現の読み方
8ビットの2の補数表現では、最上位ビット(一番左)が0なら0以上の数、1なら負の数です。負の数の大きさ(絶対値)は、全ビットを反転(0と1を入れ替え)してから1を足すと分かります。例えば11110001は、反転すると00001110、1を足すと00001111=15なので、−15です。

各選択肢について

覚えるべきポイント

8ビットの2の補数では、最上位ビットが1のとき負数。値は、ビット反転+1の絶対値に−を付ける(または、値−256)。11111011=251−256=−5。

キーワード: 2の補数、8ビット、負数、2進数の加算、整数表現、情報工学部門

出題履歴

同じ問題が計2回出題されています(平成27年度、平成30年度)。