
IEEE規格浮動小数点について聞きたいのですが、このサイト(http://docs.hp.com/ja/B3906-90007/ch02s02.html)最大非正規化で0x007fffff=2^-149 * (2^23 - 1)のことなんですけど、なぜ2^24-1ではなく2^23-1なのかわかりせん。誰かわかりやすい説明よろしくお願いします。
No.3ベストアンサー
- 回答日時:
単精度で「バイナリで0x007fffff」の場合、非正規化数なので「仮数部はそのままの値の0x7fffffで計算」します。
仮数部の
0x7fffff
は
0x1+0x2+0x4+…+0x100000+0x200000+0x400000
つまり
2^0+2^1+2^2+…+2^20+2^21+2^22
なので
2^23-1
と等しいです。
もっと簡単に言えば
0x7fffff=0x800000-1
であり
0x800000=2^23
なので
0x7fffff=0x800000-1=2^23-1
となります。
No.2
- 回答日時:
まず基本から抑えると, IEEE単精度浮動小数では
・符号 (s): 1ビット
・指数部 (e): 8ビット (バイアス 127)
・有効数字部 (m): 23ビット
で, 正規化数 (0 < e < 255) ではこの値を
(-1)^s * 2^(e-127) * (1 + m/2^23)
と解釈します.
これに対し, 非正規化数 (e = 0 かつ m ≠ 0) では
(-1)^s * 2^-126 * m/2^23
と解釈することになっています (正規化数では有効数字部の整数部「1」が省略されているが, 非正規化数では有効数字部をそのまま解釈する). なので, 非正規化数として表現する最大の値は m のすべてのビットが 1 のときであり, これで表される数は
2^-126 * (2^23-1)/2^23
です.
参考URL:http://ja.wikipedia.org/wiki/IEEE_754
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
8ビットのデータの、先頭ビット...
-
0xffffとは?
-
C言語「K&R」の演習2-9について
-
ビットシフトってどんな時使うの?
-
スロースキャンコンピュータ 加...
-
一般のソフトで画像を扱う場合...
-
二元対称無記憶通信路を実現す...
-
C言語やC++言語でビット毎に値...
-
verilog 符号付加減算(最上位...
-
16ビットCPUで32ビットの計算方法
-
2の補数
-
剰余の法が大きい場合のアルゴ...
-
FFTの単精度と倍精度の計算時間
-
フォートランの変数型と組み込...
-
IEEE規格浮動小数点について
-
シーケンス制御についての質問...
-
ライン数とステップ数の違いは?
-
プログラム言語
-
アセンブラからC言語に変換する...
-
アセンブラ言語がわかりません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
C言語で128bitの2進数のビット...
-
ビットシフトってどんな時使うの?
-
「ひまわり」と「なでしこ」の違い
-
[VBS] 素早くローテート演算したい
-
一般のソフトで画像を扱う場合...
-
文字参照は10進数と16進数では...
-
アセンブラプログラムの「数値...
-
x86のJP命令について。
-
命令について
-
VB.net
-
03分22秒36のような時間の単位...
-
verilog 符号付加減算(最上位...
-
e(自然対数の底)を100桁以上出...
-
代入の書き方で質問です。
-
マイクロコンピューター制御の...
-
光コンピュータについて
-
アセンブリの論理演算命令のCPL...
-
符号無し整数xを右にnビット回転
おすすめ情報