10進数-5.625を,8ビット固定小数点形式による2進数で表したものはどれか。
ここで,小数点位置は3ビット目と4ビット目の間とし,負数には2の補数表現を用いる。
正答3
解説
正解は3です。
8ビットのうち上位4ビットが整数部、下位4ビットが小数部の固定小数点数です。
まず絶対値の5.625を2進数にし、次に2の補数をとって負数にします。
【計算】
整数部の5は、2進数で0101です。
小数部の0.625は0.5+0.125=2^-1+2^-3なので、2進数で.1010です。
したがって5.625は0101.1010で、8ビットでは01011010です。
各ビットを反転すると10100101です。
これに1を加えると10100110となり、これが-5.625です。
【選択肢別解説】
1:× 01001100は先頭ビットが0なので正の数です。
値は0100.1100=4.75であり、負数ではありません。
2:× 10100101は、01011010のビットを反転しただけの1の補数です。
2の補数にするには、さらに1を加える必要があります。
3:○ 5.625(01011010)の2の補数をとった10100110であり、-5.625を正しく表しています。
4:× 11010011の2の補数は00101101で、0010.1101=2.8125です。
つまり-2.8125を表しており、-5.625ではありません。
【ポイント】
2の補数は「全ビットを反転して1を加える」で求めます。
固定小数点数でも、8ビット全体に対して同じ操作をすれば正しく求まります。