• ベストアンサー

計算機イプシロン

計算機イプシロンの値を求めるプログラムは作成できるのですが、 IEEE754浮動小数点の形式から理論的にはどうやって計算機イプシロンの値は求められるのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

そう. で, 例えば float (32ビット) だと有効数字部は 23ビット. このとき 1 という値は 1.000...0 (0 は 23個) という形で表現される. 機械イプシロンを e とすると, 1+e は 1.000...1 (途中の 0 は 22個) のはず. つまり e は 0.000...1 (小数点以下の 0 は 22個) で, 結局 2^-23 になる. まあ C ならそれなりなヘッダを読み込めば, 浮動小数点の形式に依らず機械イプシロンがわかるんだけどね.

apple_cube
質問者

お礼

ありがとうございます! 良く分かりました☆

その他の回答 (2)

noname#30727
noname#30727
回答No.2

http://ja.wikipedia.org/wiki/IEEE754 これを読めばわかるはず。

apple_cube
質問者

お礼

ありがとうございます!!

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

IEEE754形式でどのように数値を表現しているかがわかれば簡単だと思うんだけど, 調べました?

apple_cube
質問者

補足

http://msugai.fc2web.com/java/binary.html ですよね??(@_@;)

関連するQ&A

  • 10進数の14.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか?

    10進数の14.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか? 10進数の-7.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか? 計算方法を教えてください。

  • 浮動小数点について

    当方、浮動小数点を勉強しているのですが、 テキストの解説を読んでも理解が出来ません。 正規化とか指数と仮数の意味が分かりません。 そこで質問なのですが、浮動小数点の計算方法を教えて下さい。 IEEE形式の浮動小数点も教えて頂けると助かります。 また、下記の問題について解説して下さい。 数値を16ビットの浮動小数点表示法で表現する。 形式は図に示す通りである。10進数0.375を正規化した表現は、どれか。 ここでの正規化は、仮数部の有効数字よりも上位の0が無くなるように、 指数部を調節する操作である。 (図は添付します) 何故「E」の値が「1111」になるのでしょうか。 お手数ですが、ご教授お願いします。 尚、特に分かり易いホームページがあったら、 そのURLを記載して頂いても結構です。 以上、よろしくお願い致します。

  • VAX浮動小数点形式

    NASAのホームページからダウンロードしてきたデータを画像化しようとしているのですが、そのデータの型の説明のところにVAX_REALと書いてあり、いろいろ調べた結果VAX浮動小数点形式というのがあるらしいということまでは分かったのですが、具体的にVAX浮動小数点形式がどういうものなのか分かりません。 IEEE浮動小数点形式とは違うものなのでしょうか? あと、VAX浮動小数点形式というのはC言語などでふつうに読み出せるものなのでしょうか? どなたか分かる方教えてください。

  • 計算の丸め誤差の解消について

    プログラム上で計算するときに丸め誤差が発生し、困っています。 丸め誤差が発生している計算は -0.004+0.006+0.002 なのですが、 -0.004+0.006+0.002=0 となるところが、 =8.47E-09 となってしまっています。 オーダーの異なる計算ではないにもかかわらず、どうして誤差が発生するのかが理解できず困っています。 上の数値(左辺の方)の算出は、10^(-1)のオーダーの数値から計算されています。 多分、浮動小数点を使っているからだろうと考えているのですが、どのように解消したらよろしいでしょうか? 固定小数点を用いると、浮動小数点より誤差が少ないとありましたが、Cで固定小数点を用いる方法もわからないです。 よろしくお願いします。

  • Single→Long変換(ビット配列での変換)

    WindowsXP、Visual Basic 6.0(SP6)にて プログラムを作成しております。 やりたいことは、浮動小数点で格納されたSingle型32bitのビット列を、 そのまま整数値に同じビット列として変換したい、ということです。 例えば、12.75であれば、Single浮動小数点の内部形式(IEEE)は 0x414C0000になりますが、この値をそのまま整数値(Long)に変換できればと 考えています。 外部機器(PLC等)と浮動小数点データのやりとりを行う必要があり、 PLCへは単なる16ビットのデータ(0~65535)を整数値として転送するしか ない状況で、上記のような問題に直面しております。 何かアドバイスを頂けますと幸いです。

  • IEEE標準形式とエクセス64形式

    浮動小数点の計算に関してですが、IEEE標準形式とエクセス64形式というものがありますが、どういう時にどう使って計算するべきなのか分かりません。 参考書を読むと「なるほど、基数に足すんだな」などと何となく思うのですが、どういう問題が出たときにどちらをどう使うべきなのか、どういう問題が出た時には使ったらいけないのか・・・さっぱりです。 2つの使い方と使い時について説明していただけないでしょうか?

  • 浮動小数点の計算について

    Javaで0.1+0.2を計算すると0.30000000000000004になったり、10.0-9.9を計算すると、0.09999999999999964になったりするのはなぜですか? 参考書では。 「浮動小数点数を使った計算では、一見正確な値が計算されてるように見えてもほとんど場合内部では少しだけ誤差を含んだ値を持ってると、考えた方がいいでしょう。どのような計算を行った時にどの程度の誤差が出るのかは難しい話題になるのでこの本では詳しく説明しませんが、例えば100.0-99.99のように同じぐらいの数同士で引き算を行うと誤差が現れやすくなります。」 と書いてありました。 この本ではこれだけで説明が終わりました。 なぜ浮動小数点で計算を行うと誤差が出るのか詳しく教えていただけると助かります。

    • ベストアンサー
    • Java
  • IEEEの浮動小数点数の表現形式がわかりません!!

    10進小数0.625をIEEEの浮動小数点数表現形式である、 (-1)^S×2^E-127×(1+F) で表したい。S,E,Fの値を求めよ。 なお、(-1)^Sは(-1)のS乗、2^E-127は2のE-127乗である。 という問題です。全然わかりません!! できたら計算過程も載せて下さい!!

  • 計算機の使用法

    計算機を使った計算のやり方について質問します。 答えを小数点以下第5位を四捨五入した小数点第4位までの小数 で表せ。という問題があって、答えは 2/3√3になります。 こういう場合は2を3√3の計算した数値の小数第5位を四捨五入したもので割ればいいのですか?それとも、小数第10位くらいまで計算した値で割って、最終的に第5位を四捨五入すればいいのでしょうか? この場合はいいですが、複雑な計算になると、四捨五入したものどうしをたくさん計算すれば最終的な答えにだいぶ誤差が生まれる気がしまて。すみません単純な質問をして。

  • IEEE754浮動小数点規格

    14.625をIEEE754浮動小数点規格の単精度(float)の書式(-1)^s ×1.f×2^(e-127)に直す場合、この値をとりあえず2進数に直すのですが、 14.625=+1110.101となると書いてあったのですが、 14を二進数に変換すると1110になることはわかるのですが、625がなぜ、101になるのかわかりません。僕自身、単に625を計算したら、101110001になりました。どう625を2進数に変換したらよいですか。

専門家に質問してみよう