- ベストアンサー
浮動小数点
浮動小数点について勉強していますが、本を見てもよくわかりません。 「イクセス表記とは、本来8ビットで表現できる値は0~255であるのに対し、元の値に127を加算することにより、-127~128までの表現を可能としています。つまり、Eが0の場合は-127を、Eが127の場合は0を、Eがすべて1の場合は128を示しています。」(日経BP社) とありましたが、 ●127を加算したら、なぜ-127~128か?このマイナスはどうしてでてくるのか? 何か、例をあげて教えてもらえればうれしいです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>本来8ビットで表現できる値は0~255 ------------------------ 11111111 = +255 11111110 = +254 …… 10000001 = +129 10000000 = +128 01111111 = +127 01111110 = +126 …… 00000001 = +1 00000000 = 0 ------------------------ >イクセス表現とは、元の値に127(01111111)を加算 ------------------------ 11111111 = +128 >Eがすべて1の場合は128を 11111110 = +127 …… 10000001 = +2 10000000 = +1 01111111 = 0 >つまりEが127の場合は0を 01111110 = -1 …… 00000001 = -126 00000000 = -127 >Eが0の場合は-127を、 ------------------------ ということで,8ビット=256通りのパターンに どの数値に対応づけているかが違うわけです。 符号なし固定小数点数では, (11111111)~(00000000)に +255~0を対応。 イクセス127のゲタばき表現では, (11111111)~(00000000)に +128~-127を対応。※ ちなみに,符号あり2の補数表現では, (01111111)~(00000000)に +127~0, (11111111)~(10000000)に -1~-128となります。 (※ celtisさんご紹介のURLに詳細がありますが, IEEE 754 では指数部がオール1・オール0 の数を,特殊な数に対応づけています。) >ビット反転+1よりも、127加算するほうが単純 ------------------------ 仮数に登場する負の数の表現には「2の補数」を使う意味があるけれど, 指数に登場する負の数には補数を使う意味がないということですよね。 指数の大きさを合わせた後の仮数同士の計算は, (+5)+(-3)=(+2) でよいから,「補数の加算,で減算を実現」できる2の補数の意味がある。 でも,(aの5乗)+(aの-3乗)のような異なる指数の計算では, 指数をそのまま加減算してもダメですからね。 ------------------------
その他の回答 (2)
- celtis
- ベストアンサー率70% (2332/3291)
指数部の表記を単純化するためでしょうね。 2の補数を使用すると指数部のトップビット(左端のビット)が符号を表しますが、127を加算する(バイアスもしくは下駄履きとも表現する)ことで見かけ上は正の整数で表すことができます。 「ビット反転+1」するよりも、単に127加算するほうが単純ですから。 http://docs.hp.com/ja/B3906-90007/ch02s02.html
お礼
ありがとうございました。
- noocyte
- ベストアンサー率58% (171/291)
> ●127を加算したら、なぜ-127~128か? > このマイナスはどうしてでてくるのか? 127を加算した結果が -127~128 になるのではなく, 元の値 (-127~128) に127を加算することにより, 8ビット無符号整数 E=0~255 にするのです. だから元の値は E-127 です.
お礼
ありがとうございました。
お礼
ありがとうございました。