ソフトウェア開発技術者試験 2001年度 = 平成13年度 午前 問2

 10進数-5.625を、8ビット固定小数点形式による2進数で表したものはどれか。ここで、小数点位置は、4ビット目と5ビット目の間とし、負数は2の補数表現を用いる。

 8 7 6 5 4 3 2 1  ┌─┬─┬─┬─┬─┬─┬─┬─┐ │ │ │ │ │ │ │ │ │ └─┴─┴─┴─┴─┴─┴─┴─┘         ↑               小数点位置      

ア 01001100 イ 10100101 ウ 10100110 エ 11010011

解答



解説

 まず5.625を2進数に変換します。小数部は0.5 + 0.125すなちわ2-1 + 2-1ですから、変換結果は101.101となります。
 全体が8ビットで、小数点位置は4ビット目と5ビット目の間ですから、5.625は次のように表されることになります。

   ┌─┬─┬─┬─┰─┬─┬─┬─┐    │0│1│0│1┃1│0│1│0│    └─┴─┴─┴─┸─┴─┴─┴─┘

 2の補数は、すべてのビットを反転(0を1にして、1を0にする)して得られる1の補数に1を加えることによって得られます。

   ┌─┬─┬─┬─┰─┬─┬─┬─┐    │0│1│0│1┃1│0│1│0│  5.625    └─┴─┴─┴─┸─┴─┴─┴─┘         ↓ 全ビットを反転    ┌─┬─┬─┬─┰─┬─┬─┬─┐    │1│0│1│0┃0│1│0│1│    └─┴─┴─┴─┸─┴─┴─┴─┘         ↓ 1を加える    ┌─┬─┬─┬─┰─┬─┬─┬─┐    │1│0│1│0┃0│1│1│0│ -5.625    └─┴─┴─┴─┸─┴─┴─┴─┘



BohYoh.comトップページへ