質問するログイン新規登録

回答編集履歴

2

typo

2017/06/19 15:49

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -21,11 +21,13 @@
21
21
  > [Why does frexp() not yield scientific notation?](https://stackoverflow.com/questions/24928833/why-does-frexp-not-yield-scientific-notation)
22
22
  frexp()が戻り値を[1, 2)の範囲ではなく、[0.5, 1)の範囲に収めるようにしている理由は、IEEE 754およびISO/IEC 60559が策定される前に作られた関数であることが理由と考えられる
23
23
 
24
+ 次の質問ですが、
25
+
24
26
  > ガード桁:5
25
27
  丸め桁:6
26
28
  スティッキー・ビット:8
27
29
 
28
- [Guard Bit, Round Bit, Sticky Bit](http://exlight.net/devel/fp/grs/index.html)の意味なら、全くっています。
30
+ [Guard Bit, Round Bit, Sticky Bit](http://exlight.net/devel/fp/grs/index.html)の意味なら、全く違うようです。
29
31
 
30
32
  > 仮数部の下に,ガード ビット(Guard bit),ラウンド ビット(Round Bit),スティッキービット(Sticky Bit)の3つのビットが用意されている.これら3つのビットの値はFPUが演算中に自動でセットするもので,ユーザーが値をとりだして演算に利用することはできない(できなくなっているのが普通).
31
33
 

1

微修正

2017/06/19 15:49

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -12,7 +12,7 @@
12
12
  そして、正規化しない場合、同じ値浮動小数点値に対して、仮数部と指数部の組み合わせが複数発生し、取り扱いが非常に面倒です。IEEE754やfrexp関数は正規化しています。
13
13
 
14
14
  IEEE754は0でない場合、最上位ビットを小数点の左隣に定めました。
15
- frexp関数は、[0でない場合、最上位を小数点の右隣](https://cpprefjp.github.io/reference/cmath/frexp.html)に定めました。[1/2, 1)は、0.5以上1未満です。これは小数点の右隣がちょうど1になるな範囲です。
15
+ frexp関数は、[0でない場合、最上位ビットを小数点の右隣](https://cpprefjp.github.io/reference/cmath/frexp.html)に定めました。[1/2, 1)は、0.5以上1未満です。これは小数点の右隣がちょうど1になるな範囲です。
16
16
  つまり、正規化方法が異なるだけです。
17
17
 
18
18
  もしも、frexp関数の非0の時の仮数部を[1, 2)と定めていればIEEE754の正規化と一致しますが、恐らくfrep関数の仕様の方が先に決っているはずです。