
floatの有効桁数は6桁なのでしょうか?7桁なのでしょうか?
wiki(https://ja.wikipedia.org/wiki/%E5%8D%98%E7%B2%BE …をみると「指数部が全て 0 でない限り、この形式では「暗黙の整数ビット」を 1 とみなす。従って小数部の23ビットだけがメモリフォーマット上に出現する。従って十進に換算したとき表現できる桁数は log10(224) ≈ 7.225 桁となる。」という記述があります。
この文章でわからないのは、「指数部が全て 0 でない限り」の部分です。
これは、指数部が全て 0 であれば、log10(2^23) ≈ 6.923 で悠桁数が6桁になることも暗に示しているのでしょうか?
また、指数部が0になるときの数字を具体的にイメージができないのですが、どういった数字(10進数)なのでしょうか?
もしご存知の方がいましたら教えていただけると幸いです。
以上、よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
指数部がゼロというのは、正規化数の範囲では、数値のゼロを表現します。
そのため、仮数の整数部もゼロ、小数部もゼロです。参照されているページの「指数部の符号化方式」の所を見てください。
No.1
- 回答日時:
そのWikipediaの記事の「指数部の符号化方式」もよく読んでください。
e=0のときは、「非正規化数」として、 「暗黙の整数ビット1」ではなく「暗黙の整数ビット0」として、仮数を表現します。
「大きい位の0は有効数字に入れない」というルールがありますので、e=0のときは、仮数は最大で23桁〜最小1桁しかありません。
十進6桁どころか、1桁未満の精度にもなります。
1.0 * 2^0 ÷ 2 = 1.0 * 2^-1
1.0 * 2^-1 ÷ 2 = 1.0 * 2^-2
... と、
1.0 * 2^-126
までは、指数を調整して、仮数部 は(暗黙の1を込みで) 24ビットの精度を保ってきます。
これ以上絶対値を小さくしようとすると、指数が表現できなくなります。
そこで指数はそのまま仮数の「暗黙の0」をやめます
1.0 * 2^-126 ÷ 2 = 0.1 * 2^-126
このときに、暗黙の1はやめて0とする、ということを表現するために、 「指数」は2^-126のまま、指数部の符号を 「0」 としまます。
ご回答ありがとうございます。
>そこで指数はそのまま仮数の「暗黙の0」をやめます
という記述はあっていますか??
「そこで指数はそのまま仮数の「暗黙の1」をやめます」
ではないかと思うのですが、どうでしょう??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
有効数字について 以前質問をし...
-
VB.net Double と...
-
fortranでx=1としても0.9..が入る
-
色の判定
-
10次の多項式を求めるプログラ...
-
有効桁数の数え方・誤差
-
EXCELで 0.1 はなぜ 0.1 となる...
-
ExcelのINT関数の計算結果がお...
-
O(n log n)について2
-
”/”を使わずに割り算したいんで...
-
どんな数字を入力してもaverage...
-
PICマイコンのアセンブラについて
-
ExcelでPC(パソコン)によって...
-
対数から真数に
-
最早開始時間と最遅完了時刻を...
-
C言語 エラーの原因がわからな...
-
信頼区間の1.96や1.65ってどこ...
-
Enterキーを押されたら次の処理...
-
プログラムでの数字につく”f”の...
-
「Aに対するBの割合」と「Aに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
有効数字について 以前質問をし...
-
c languageで 簡単な質問があ...
-
EXCELの関数"STDEV(標準偏差)"...
-
ExcelでPC(パソコン)によって...
-
三菱シーケンサ(Aシリーズ)で...
-
floatの有効桁数
-
255の2の補数、B'00000001'が-...
-
O(n log n)について2
-
符号誤り率の計算は例題でどの...
-
CRCの計算方法について
-
VB.net Double と...
-
コンピューターは指数関数をど...
-
16進数 加算 減算 C言語
-
ExcelのINT関数の計算結果がお...
-
C言語でセルオートマトンを作成...
-
BCD・HEX・BINについて
-
”/”を使わずに割り算したいんで...
-
三角比の俯角の計算
-
除算を使わずに10で割りたい。
-
VBAでミリ秒まで出力する方法
おすすめ情報