• ベストアンサー

浮動小数点とセットで使用される「e」について

Javaの参考書で、以下のコードがありました。 『double d2=1.2345e-72』 質問1:このコードの「e」について、常用対数のことでしょうか? 質問2:1.2345e-72は、『1.2345*10の-72乗』でしょうか? 質問3:浮動小数点において、なぜ常用対数は必要なのでしょうか? その理由は、「浮動小数点の桁数を簡単にできるから。またdoubleの表現できる精度より高いそれ表現できるから」でしょうか?

  • Java
  • 回答数4
  • ありがとう数3

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

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

質問2から推測するに, 基数を10とした指数(exponent)を,常用対数と勘違いなさっているのでしょう。 > doubleの表現できる精度より高いそれ表現できるから というのは変ですよね。1.2345e-72 と表記しようが 0.0000000000000000000000000000000000000000000000000000000000000000000000012345 と表記しようが,有効桁数は変わりません。 この点を除けば,浮動小数点の桁数を簡単に記述できるから指数表記が必要だ,というのは正しいです。

wantanton
質問者

お礼

丁寧なご回答ありがとうございます!

その他の回答 (3)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.4

すみません。#1です。 「常用対数」と「自然対数(の底)」を勘違いしてました。 回答の前半は無視してください。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

1. exponentialのeです。12345e-72のような表記の方法を指数形式と言います。 2. 念のために括弧をつけるなら『1.2345*(10の-72乗)』です。 3. 質問の前提が成り立っていません。「なぜ指数形式を使うのか」という質問であれば、そのほうが人間が読み書きするのに都合がよい(場合がある)からです。それこそ、1.2345e-72を指数形式を使わずに書こうとすると"0."と"12345"の間に0が71個も並ぶことになり、桁数を間違いなく書くのは大変です。

wantanton
質問者

お礼

丁寧なご回答ありがとうございます!

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> 質問1:このコードの「e」について、常用対数のことでしょうか? > 質問2:1.2345e-72は、『1.2345*10の-72乗』でしょうか? なんで質問1から質問2が出てくるんですか? 1.2345*eの-72乗ならともかく。 回答は 回答1:違います 回答2:『1.2345*10の-72乗』なら「その通り」。『1.2345*eの-72乗』なら「違います」 回答3: 回答1、2より、質問自体が無意味 で、こういうのは「リテラル」って言います。 Java リテラルで検索すれば、言語仕様が見つかります。 慣れないとわかりずらい記法にはなってますが。

wantanton
質問者

お礼

丁寧なご回答ありがとうございます!

関連するQ&A

  • 浮動小数点数型

    単精度浮動小数点型と倍精度浮動小数点数型、それぞれ値がとりうる範囲を教えてください。 単精度浮動小数点型 負の値は -3.4028235E+38 ~ -1.401298E-45、 正の値は 1.401298E-45 ~ 3.4028235E+38 の範囲の値 倍精度浮動小数点数型 負の値は -1.79769313486231570E+308 ~ -4.94065645841246544E-324、 正の値は 4.94065645841246544E-324 ~ 1.79769313486231570E+308 の範囲の値 とは記述してあるのですが、実際に小数1桁なら整数部はどのくらいの範囲の値がとれるのか、皆目わかりません。 どうか、わかりやすく教えてください。 よろしくお願い致します。

  • 浮動小数点について

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

  • 浮動小数点表現

    2^{24}を32bit整数表現及び32bit(単精度)浮動小数点表現で表せ。 結果は16進数で示せ。 符号ビット:MSB 指数部n:7ビット 仮数部:24ビット という問題があるのですが、 解いてみたものの、答えもないのであっているのか分かりません。 以下の答えで合っているでしょうか? また、合っていなかったら、どのように解くのか教えていただけませんか? 整数表現 0100 0000H 浮動小数点 0100 1000 0100 0000 0000 0000 0000 0000

  • 浮動小数点とIEEE754

    初めまして。 現在、浮動小数点について調べています。 #質問カテゴリ、間違っていたらすみません。 色々調べていると、こんなサイトを見つけました。 http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fudo.htm 分かり易い解説だったんですが、疑問も湧いてきました。 サイトの内容は、0.375を浮動小数点に直すという内容なんですが 汎用型の時は『0.11 × 2の-1乗』 IEEE754の時は『1.1 × 2の-2乗』 で計算しています。 Q1) 汎用とIEEEの違いは『127』を足すだけだと思っていたのですが 『2の-n乗』の直し方も異なるのでしょうか。 もう一つ質問です。 整数入力をIEEE754に準拠したフォーマットで出力させるデジタル回路を作成しています。 出力形式は32bit or 64bitです。(単精度か倍精度) そこで悩んでいるのが入力のbit数とその内訳です。 入力bitは『符号・整数・小数』で形成されているかと思うのですが 符号以外のbit内訳が分かりません。 Q2) 単精度/倍精度、それぞれの入力範囲bitと、その内訳を教えて頂けないでしょうか。 (単精度:合計16bit ⇒ 符号1bit、整数7bit、小数8bit)みたいな感じでお願いします。 宜しくお願いします。 分かりにくい質問でしたらご指摘下さい。

  • IEEEの浮動小数点表現

    IEEE倍精度の浮動小数点表現の絶対値の最小値と最大値を十進の概数でださなくてはならないのですが、どうすればよいのですか?教えてください。

  • IEEE754単精度2進浮動小数点の問題

    10進数47.0のIEEE754単精度2進浮動小数点表現を求めて欲しいです。 答えは16進数でお願いします

  • 浮動小数点

    浮動小数点について勉強していますが、本を見てもよくわかりません。 「イクセス表記とは、本来8ビットで表現できる値は0~255であるのに対し、元の値に127を加算することにより、-127~128までの表現を可能としています。つまり、Eが0の場合は-127を、Eが127の場合は0を、Eがすべて1の場合は128を示しています。」(日経BP社) とありましたが、 ●127を加算したら、なぜ-127~128か?このマイナスはどうしてでてくるのか? 何か、例をあげて教えてもらえればうれしいです。 よろしくお願いします。

  • 単精度浮動小数点方式、16進数

    10進数で22.75で表される値を単精度浮動小数点方式で表現し,それを16進数に変換するとどうなりますか? 22.75(10)→1.421875 4+127=131=10000011(2) 0.421875=0.011011(2) ここからのやり方教えてください

  • 『浮動小数点』について

    最近、ふと『浮動小数点』について疑問を持ちました。 それは『浮動小数点』がどんな場合に役立つのか?という事です。 C言語では標準で『float』型と『double』型がありますよね。 私は昔、C言語を始めたころにテスト・プログラムなどで使った経験しかなく その後に『電卓ソフト』を作ろうとしたときに『誤差』が原因で役に立たない ことを知りました。『誤差』があることは知っていましたが…。 そこで質問。内容は『浮動小数点』はどんな場面で利用されているかです。 実際の『ソフトウェア開発』や趣味でフリーソフトを作った場合も含み、あと こんな場面で役に立つのではという事を知りたいのです。 アンケートみたいになりますが、『アンケート』カテゴリでは、あまり回答などが 集まらないと思い『C/C++』カテゴリのこちらで質問としました。 よろしくお願いします。

  • 浮動小数点演算と固定小数点演算の使い分けについて

    解説書などには、「浮動小数点は3.14E0の形」や「固定小数点は3.14」などと説明されています。 では、例えば、ごく一般的な32ビットマシンで「3.14 * 45.6」という命令を書いたときに演算されるのは浮動小数点演算なのか、固定小数点演算なのかがわかりません。例えばIntelのx86CPUは、内部にFPUを持っているそうですが、この場合は「3.14 * 45.6」は、内部では必ず浮動小数点演算になっているということなのでしょうか? 「3.14 * 45.6」を「3.14E0 * 4.56E1」と書いた場合にしか浮動小数点演算されないということではないと思っているのですが、実際の浮動小数点演算と固定小数点演算の内部的な切り替えがわかりません。 理解が足りなくて、おかしな質問になっていましたら、その点もご指摘いただければうれしいです。

専門家に質問してみよう