- ベストアンサー
"2進数"で負の小数点の表し方?
2進数で、負の整数の表現方法は分かるのですが 小数点となると分かりません。 質問(1) ・上位1bitを符号ビットとする4bitで2進数を表すと 10進数 → 2進数 7 → 0111 1 → 0001 0 → 0000 ー1 → 1111 ー8 → 1000 さらに、小数を表す1bit追加すると 0.5 → 00001 ? -0.5 → 11111 ? 上記であってますか? そして、0.75は?000011? 以上、宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
純粋に2進数で表記すれば、 0.5 = 0.1 -0.5 = -0.1 (共に左が10進数表記・右が2進数表記) これ以外は取り決め次第で、「小数を表す1ビットを追加」を普通に解釈すれば、「実際の数値を2倍して表記」となります。 この定義では、0.75は表記不能です。 拡大解釈をして「整数部を左側4ビットで表す」とすることも取り決めとして認められるでしょうが、混乱の元であり、敢えてこんな表記をする必要も無いでしょう。 また、-1を1111と表現するのは「2の補数表記」と呼ばれる方法で、これも取り決め次第です。一般的なコンピュータでは、「+1」+「-1」=0のような計算を正数の加算と同じ方法で実行するため、この「2の補数表記」が使われます。 0001 + 1111 = 0000 (上位1ビットは桁落ちする) 要は、「何のために2進数で表記するか」「何に使うか」が決まらないと、このような表記は正しいかどうか判断できません。 以上。
その他の回答 (3)
回答ではありませんが・・・。 この辺りのことは、情報処理資格試験(基本情報など)の対策本に詳しい解説が必ず出ているはずです。コンピュータに興味をお持ちでしたら、書店で調べてみてはどうでしょうか?
小数点数の表示法方法は 符号部と指数部と仮数部に分けて表現します。 32ビットの場合、 最上位ビットが符号部で次に指数部が8ビットついで仮数部が23ビットになります。 指数部はバイアス(底上げみたいなもの)があったり、仮数部はかくれ1方式があったりと説明が面倒なので、URLを見てください。
- panda0000
- ベストアンサー率35% (59/165)
固定小数点では、 0.5は 0000.1 0.75は 0000.11 で合ってます。 負の数は忘れてしまいました。