浮動小数点数型の値の範囲とは?

この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です。
回答を見る
  • ベストアンサー

浮動小数点数型

単精度浮動小数点型と倍精度浮動小数点数型、それぞれ値がとりうる範囲を教えてください。 単精度浮動小数点型 負の値は -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桁なら整数部はどのくらいの範囲の値がとれるのか、皆目わかりません。 どうか、わかりやすく教えてください。 よろしくお願い致します。

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

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.2

こんにちは  コンピュータが取りうる値がいくつになるかという回答を望む場合、普通データサイズは何ビットの場合でフォーマットの形式はこれという前提条件が必要ですね。  普通コンピュータに与えるインプットデータがなければ、データ処理後のアウトプットもありません。  で、一般的に小数点数を2進数で表わすことを考える場合、素人の私でも思いつくのは、=1/(2^0)+1/(2^1)+1/(2^2)+1/(2^3)+ .. 以下、ビットの続く限り同様..  なので、10進数に直すと=1+0.5+0.25+0.125+ .. 以下、ビットの続く限り同様..  このことから、2進数の小数点数と10進数の小数点数は、ピッタリ合わないパターンがかなりあるのでは?と直感的に感じると思います。  その通り!(^^)v  ビット数が多ければかなり近くなるけど同じじゃないパターンが当然考えられますね。 どこまでの精度を要するかでビット数を決めるんです。  昔のマイクロソフトのC言語のライブラリでもハードウェアが対応(数値演算プロセッサが使える)の場合は、ハードウェアを利用する演算ライブラリを使用し、ハードウェアがない場合は、自前の演算ライブラリとリンクする仕様がありました。  インテルのCPUに内蔵されている数値演算プロセッサ(NDP)は、IEEE754という国際規格に準拠していますので、一例としてマイクロソフトのエクセルの扱いの場合の参考URLを乗せておきますね。

参考URL:
http://support.microsoft.com/kb/402554/ja
goouser20
質問者

お礼

ありがとうございます。 なんとなくわかりました。

その他の回答 (2)

  • ts244
  • ベストアンサー率41% (53/127)
回答No.3

お使いのコンパイラがC/C++であれば、 標準ライブラリの<float.h>内で定義されているはずなので、 お使いのコンパイラの標準ヘッダを読んでください。

goouser20
質問者

お礼

ありがとうございます。

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

あなたのいう「単精度浮動小数点型」や「倍精度浮動小数点数型」では, どのようにしてビットパターンと (そのビットパターンの表す) 値を対応させているのですか? ついでにいうと「小数1桁なら整数部はどのくらいの範囲の値がとれるのか」というのも今ひとつ意味がわかりません.

goouser20
質問者

お礼

「小数1桁なら整数部はどのくらいの範囲の値がとれるのかの意味がわからない」 の理由がやっと私もわかりました。 少数桁が何桁だろうと整数部に関係ないですね。 まだ間違ってるかもしれませんが、 ありがとうございました。

関連するQ&A

  • 浮動小数点数について

    私は浮動小数点数を整数値に変換したいのですが、 各種検索エンジンで探してみたのですが、 ほしい情報が得られなかったので どなたか浮動小数点数を整数値化する方法を知っていましたら 教えていただけないでしょうか?sprintfで表示可能なのはわかりましたが、 表示だけではなく、処理の中でも使用するので、変換できないと だめなんですが、どなたか知っていませんでしょうか?

    • ベストアンサー
    • Perl
  • excelで小数を浮動小数点数にする

    excelで長い桁の小数を浮動小数点数にする方法をおしえていただけますか?よろしくお願いします。

  • データ型について

    VBに限ったことではないのですが、 データ型には、短整数型、整数型、長整数型、単精度浮動小数点数型、倍精度浮動小数点数型といろいろな型がありますが、 整数を扱うなら長整数型、小数も含めて扱うなら倍精度浮動小数点数型 を使えば良いと思うのですが、それにより桁数の小さな短整数型、整数型とかは何のためにあるのでしょうか? あまり大きな値を扱わないときにそちらの型を選ぶメリットは何なのでしょうか?

  • 固定小数点数、浮動小数点数について

    学校から課題が出ているのですがさっぱりなので教えていただければ幸いです。 課題:11051120 この数を32bitの固定小数点数、浮動小数点数であらわせ (1)固定小数点数、浮動小数点数とは何か (2)数値をあらわすための手順 この2点を教えてください。 1~10まで教えろとは言いません。ただ、やろうにも全くわからないので、ヒントだけでもいただけたらと思っています。 提出期限は10日までなので、よろしくお願いします。

  • 浮動小数点表現

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

  • 浮動小数点数について

    現在情報処理の勉強をしているのですが、下記の問題が解けません。。 もし、わかりすく教えてもらえれば,,,と思い、、、 ↓ 数値を16ビットの浮動小数点数で表現する。10進数0.375を正規化した表現を、2進数であらわすとどうなるか求めよ。ここでの正規化は仮数部の有効数字よりも上位の0がなくなるように指数部を調整する操作である。 仮数部の符号(正は0 負は1)(1ビット) 奇数を2とする指数部で、負数は2の補数(4ビット) 仮数の絶対値(11ビット) で、 答えは 0111 1110 0000 0000 なのですが、この指数部がどうしてもわかりません。 初心者なので、、わかりやすく教えてくだされば、、うれしいな。と思うのです。

  • 浮動小数点の問題です。

    10進数+0.375を浮動小数点で記憶させ、その記憶領域のダンプリストを読み取ると、 0.375は16進数で(1)に、 -1は16進数で(2)となる。 答えは(1)は7F00、(2)8600です。 この2つの問題の途中式と解説をお願いします。 バイト型:バイト数は1バイト,負の補数は2の補数で表す 整数型:バイト数は2バイト,負の補数は2の補数で表す 浮動小数点:バイト数は2バイト,符号1ビット,指数部5ビット,仮数部10ビット ビット番号0:符号部.仮数部の符号が入っている.0なら正,1なら負 ビット番号1-5:指数部.負の値を2の補数で表す ビット番号6-15:仮数部.ビット番号6を小数点第1位とする仮数部の小数点以下の絶対値が、正規化された2進数で入っている 正規化とは,仮数部が2進数で0.1以上1.0未満になるよう指数部を増減する操作である

  • 浮動小数点数の表現について

    浮動小数点数の表現で、このIEEEともう一つの方式の違いは何でしょうか? 参考書にこう載っていましたが、よく理解できませんでした。 違いを教えてください。 10進数の28をIEEE仕様の浮動小数点数で表示します。 仮数部を2進数に (28)10 → (11100)2 仮数部の正規化 (11100)2 ×2 0 →(1.1100)2 ×2 4 指数部をイクセス表記に2 4 → 2 131 10進数の28をもう一つの仕様の浮動小数点数で表示します。 仮数部を16進数に (28)10 → (1C)16 仮数部の正規化 (1C)16×16 0 → (0.1C)16 ×16 2

  • EXCEL16進⇒浮動小数変換したい

    EXCELで8桁の16進文字列を単精度浮動小数点数に変換する方法を教えてください。

  • 16ビット浮動小数点数の表現方法について

    学校の課題において、ある数を2進数で表現し、さらにその数を16ビット浮動小数点数で表しなさい。またそのとき生じる誤差の名称を記しなさい、という課題がでており取り組んでいるのですが、ネットで調べていても計算方法が理解できず行き詰っております。どなたか計算方法の手助けをお願いできないでしょうか。 与えられた条件 符号ビット:1ビット(0:正、1:負) 指数部:4ビット 仮数部:11ビット 16ビット浮動小数点数で表す数 10011100011000011 です。計算方法を理解したいので、なるべく詳しくお願いいたします。 誤差の名称もできればご教授願います。

専門家に質問してみよう