離散数学(全109問中76問目)
No.76解説へ
負数を2の補数で表す16ビットの符号付き固定小数点数の最小値を表すビット列を,16進数として表したものはどれか。
出典:平成18年秋期 問 5
- 7FFF
- 8000
- 8001
- FFFF
広告
解説
固定小数点数表現で負数を表現する場合には、最上位ビットを符号ビット(非負:0,負:1)とした2の補数表現が用いられます。nビットで表現できる範囲は「-2n-1~2n-1-1」となっていて、これにn=16を当てはめると、16ビットの符号付き固定小数点数では-32768~32767の範囲を表現できることになります。
最小値となる-32768の絶対値32768を2進数で表現すると「1000 0000 0000 0000」でこれを2の補数表現すると次のようになります。
1000 0000 0000 0000
↓(全ビットを反転)
0111 1111 1111 1111
↓(1を加算)
1000 0000 0000 0000
元のビット列と同じですが-32768を2の補数表現で表すと「1000 0000 0000 0000」になることがわかります。これを16進数に変換した「8000」が適切な答えになります。
最小値となる-32768の絶対値32768を2進数で表現すると「1000 0000 0000 0000」でこれを2の補数表現すると次のようになります。
1000 0000 0000 0000
↓(全ビットを反転)
0111 1111 1111 1111
↓(1を加算)
1000 0000 0000 0000
元のビット列と同じですが-32768を2の補数表現で表すと「1000 0000 0000 0000」になることがわかります。これを16進数に変換した「8000」が適切な答えになります。
広告