平成18年 秋期 基本情報技術者 午前 問5

負数を2の補数で表す16ビットの符号付固定小数点数の最小値を表すビット列を、16進数として表したものはどれか。

 ア  7FFF  イ  8000  ウ  8001  エ  FFFF


答え イ


解説
問題は、最小値を選べなので選択肢の中から負の数を探します。負の数は最上位ビットが1のものですから、16進数でいうと一番左の数字(英字)が8以上(8, 9, A, B, C, D, E, F)のものが負の数になります。
すなわち、候補はイ、ウ、エです。
16進数での負の数の大小の比較は難しいので、10進数に変換して比較します。

 イ  8000h=1000 0000 0000 0000b
=(0111 1111 1111 1111b+1)=-32,768
 ウ  8001h=1000 0000 0000 0001b
=(0111 1111 1111 1110b+1)=-32,767
 エ  FFFFh=1111 1111 1111 1111b
=(0000 0000 0000 0000b+1)=-1
したがって最小値は(イ)です。

ちなみに、固定小数点の数字の負の数の表現方法はほかにもありますが、試験に出ることはないと思いますので、説明は省きます。(もし出てきたらそのときに説明します。)


キーワード
・2の補数
・固定小数点

キーワードの解説
  • 2の補数
    コンピュータ内で負(マイナス)を表すときに使用する表現方法です。
    2の補数ではある数字の各けたのビットの値の0と1を反転して+1をすると正負が逆の値を求めることができます。
    たとえば、8ビットで1を表すと0000 0001bになり、各けたのビットの値を反転すると、1111 1110bになります。さらにこれに+1を行い1111 1111bになり、これは-1です。
    ちょっと計算が面倒ですが、2の補数の利点は計算するときに正負を意識しなくてすみます。
    たとえば、1-1=1+(-1)=0000 00001b+1111 1111bになり、これを単純に2進数の加算を行うと 1 0000 0000bになり9ビット目の1はオーバフローによりなくなるので答えは0000 0000b=0になります。
    この、正負を意識する必要がないということは計算が容易で速く済むということですので、一般的にコンピュータ内では2の補数が使用されています。
  • 固定小数点
    少数点の位置が決まっている表現方法で16進ではFF.FFhやFFF.Fhといった書き方がされます。
    今回の問題では、問題には固定小数点と書かれていますが、選択肢に小数点が出てこないので意識する必要がありません。

もっと、「2の補数」について調べてみよう。

戻る 一覧へ 次へ