平成23年度 秋期 午前 問2
離散数学
2の補数に関する問題
10進数 −5.625 を,8ビット固定小数点形式による2進数で表したものはどれか。ここで,小数点位置は3ビット目と4ビット目の間とし,負数には2の補数表現を用いる。
〔図〕
7 6 5 4 3 2 1 0 ← 各セルの上に刷られたビット番号
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ │ │ │ │ │ │ │ │
└───┴───┴───┴───┴───┴───┴───┴───┘
↑
小数点位置
(矢印はビット番号 4 のセルと 3 のセルの境目を指している)- ア01001100
- イ10100101
- ウ10100110
- エ11010011
答えと解説を見る
✓ これが正解ウ10100110
解説
整数4桁・小数4桁に置いてから補数を取ります。
この問題は、小数点をどこに置くかが先に決まらないと解けません。図では各セルの上にビット番号が刷られていて、矢印はその番号の4と3の境目を指しています。8ビットの固定小数点形式のうち、上位4桁が整数の側、下位4桁が小数の側になるということです。まず絶対値を並べます。5.625は整数の側が101、小数の側が.101ですから、小数の側を4桁にそろえると0101.1010になります。負の数は2の補数で表すので、この並びをすべて反転して1を足します。反転して1010.0101、1を足して1010.0110です。判定の軸は二つあります。一つは小数点を何桁目に置いたか、もう一つは反転のあとに1を足したかどうかです。置く位置が1桁ずれれば値は倍か半分になり、足す手順を落とせば1だけ小さい並びで止まります。
ほかの選択肢はなぜ違うのか
- ア01001100:小数点を左から数えて三つ目と四つ目のセルの境目に置いたときの並びです。整数の側を3桁、小数の側を5桁とみなすと5.625は10110100となり、これを反転して1を足すとこの値になります。
- イ10100101:並びを反転したところで手を止めた形です。1を足す手順が残っているため、求める表現より1だけ小さくなっています。反転しただけでは負の数の表現になりません。
- エ11010011:小数点を右から3桁のところに置いたときの並びです。整数の側を5桁、小数の側を3桁とみなすと5.625は00101101となり、これを反転して1を足すとこの値になります。
出典:平成23年度 秋期 基本情報技術者試験 午前 問2(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)