
No.6ベストアンサー
- 回答日時:
最大値の数字から判断して、IEEE754の単精度実数だろうと思いますのでその線で説明します。
まず、浮動小数点数が 仮数部×指数部で表されるというのはいいですよね?
で、二進数でこれらの最大値を考えると、
1.111....1 (全部で24ビット分) が仮数部の最大値で、
指数部の最大値が 127 になるというのもいいですか?
そうすると全体として
1.111...11(二進数) × 2^127
が最大の大きさになります。これを十進数に変換すると大体質問にあるような数字になります。
正確な手順は忘れてしまいましたが、とりあえず指数部に関しては
2^126 が十進数では何桁になるかを概算すると
log10(2^127) → 127 × log10(2) → 127 × 0.301 → 38.22700
となりますのでまあ大体38桁前後(10^38) ですよ。ということです。
正確なところは数学カテゴリででも訊いてください(^^;
数値計算入門I~第2回~
http://zwo.phys.chs.nihon-u.ac.jp/Suchi12/1-2/1- …
No.9
- 回答日時:
大丈夫だろうけど「その形式だ」と勘違いされるとまずいな~と思ったんですが, 文章を読み切れず申し訳ありません>#8.
しかし, 本当のところどんな形式なんだろ?
No.8
- 回答日時:
>ここで挙がっている形式とは異なります>#6.
ごもっとも。
それを踏まえた上でこういった感じで求められますよという例を出したまでですので
その辺ご賢察いただきたく :)
No.7
- 回答日時:
IEEE754 単精度実数は符号 1ビット, 指数部 8ビット (オフセット 127), 仮数部 23ビット (指数部が 0 と 255 以外では整数部の 1 を除く) なので, ここで挙がっている形式とは異なります>#6.
もちろん「最大値」から IEEE754 単精度っぽいことは推測できるんですが, ビットの振り分け方が違う (特に仮数部が 24ビットということから「仮数部を 16進 6桁で表現し, 指数部は 16 のべき」という可能性すらある) ので「どういう表現なのか」と聞いてるわけです.
ところで, その「モノの本」のタイトルなどは挙げられないんでしょうか? まあ挙がったとしても確認できるかどうかはわかりませんが.
No.5
- 回答日時:
「どんな値を意味するのか」はその「モノの本」に (数式付きで) 書いてあるような気がするんだけどなぁ. 書いてなかったとしても, 調べるために必要なものはそろってるはずだから検索すればわかるはずだよ.
浮動小数の表記法としては IEEE754 が標準だけど, これだと指数部は 8ビットなんだよなぁ. だから聞いたんだけど....
この回答へのお礼
お礼日時:2008/04/02 23:31
ご返信、ありがとうございます。
IEEE754とはビットの振分けが違うようです。
ネットで調べた限りでは2通りの表記方法があるようです。
範囲の結果の表記はあるのですが、計算過程を見つけるとはできませんでした。
No.1
- 回答日時:
/*
C# 多分計算としてはこんな感じ。
Wikipedia見ると,単精度浮動小数点数は
http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95% …
符号部1ビット・指数部8ビット・仮数部23ビット
って書いてあるんだけど?
仮数部はその仕様上,最大で2未満にしかならない(正確には2 - System.Math.Pow(2,-23))
面倒くさいので2でいいや。
指数部は正と負の数を考えなきゃいけないから
8ビットだと
最大で
System.Math.Pow(2,(8-1)) - 1
最小で
System.Math.Pow(2,-(8-1))(こちらは絶対値の最大最小を求めるのには使わない)
小さいほうが1大きいのは
http://www.algolab.co.jp/~lum/pcnyumon/nyu032.htm
あたりを参考のこと
符号部ももちろん、絶対値の最大最小を求めるのには使わない
よって
考えられる最大値は
= System.Math.Pow(2,System.Math.Pow(2,7) - 1) * 2
見づらいから10を底として対数とって見よう・・・(以下コード見ればわかるので省略)
*/
namespace Q3912041A
{
class Program
{
public static void Main(string[] args)
{double a = System.Math.Pow(2,System.Math.Pow(2,7) - 1) * 2;
//最大桁数
System.Console.WriteLine(System.Math.Floor(System.Math.Log(a,10))); // 38
System.Console.WriteLine(a / System.Math.Pow(10,38)); // 3.40282366920938
System.Console.ReadKey(true);
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
人気Q&Aランキング
-
4
なぜ減点なのか。
-
5
ラグランジュの未定乗数法
-
6
なぜ、最小値がないのかが分か...
-
7
2次関数y=(x+2)2乗-3の最大...
-
8
大学数学の最大値・最小値の問...
-
9
3σと最大値,最小値
-
10
範囲の始まりと終わりの値の名称
-
11
数学の質問です。 y=3sinθ-1 (0...
-
12
至急 大学数学について(最小公...
-
13
excelのグラフでY軸の最小値を...
-
14
xy平面からuv平面へ変換するお話
-
15
max,minの意味
-
16
上界と上限と最大値の違い
-
17
(2)aは正の定数とする。0≦x≦aに...
-
18
●○2変数を含む最大最小問題。
-
19
次の二次関数の最大値、最小値...
-
20
数値データの規格化
おすすめ情報
公式facebook
公式twitter