- 締切済み
double型とは
double型が扱える値の範囲と値の最小量と、値とバイナリの関係を教えてください。 たとえばint型なら4バイトで、最少量が1なので、値が524289ならバイナリは0X1,0X0,0X8,0X0だと分かりますが、double型の場合の法則が分からないのでそれを教えてください。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- JaritenCat
- ベストアンサー率37% (122/322)
最小量というのは計算機イプシロンのことでしょうか?float.h に DBL_EPSILON が定義されていればそれです。 同様に、値の範囲は、DBL_MIN ~ DBL_MAXでしょう。 バイナリとの関係はCPUやコンパイラに依存するので一概に言えません。
- hitomura
- ベストアンサー率48% (325/664)
ちなみに、int型について、 >たとえばint型なら4バイトで、 …(1) >最少量が1なので、 …(2) >値が524289ならバイナリは0X1,0X0,0X8,0X0だと分かりますが、 …(3) と誤解されているようなので、補足を。 (1)Cの言語仕様では、int型のサイズは定義されていません。 sizeof(short)≦sizeof(int)≦sizeof(long) とだけ規定されています。 (2)ただのint型(4バイト)ならば、その値の範囲は-0x80000000から0x7fffffffの間、 unsigned int型(4バイト)ならば、0から0xffffffffの間です。 (3)CPUのデータ格納法の違いにより、これもそう決まっているわけではありません。 逆に0X0,0X8,0X0,0X1と並ぶ場合もあります。 この辺の詳しい話は「エンディアン」で検索すれば分かります。
- tatsu99
- ベストアンサー率52% (391/751)
double型のような浮動小数点数を表現する場合は、いろいろな規格があります。従って、どの規格に従っているかによって実際の内部表現の値も異なってきます。他の回答者の方々がコンパイラは何かと聞いているのは、そのコンパイラから、どの規格かを特定したいからでしょう。最近では、IEEE規格が主流ですので、その規格でのdouble型について調べれば、良いと思います。 IEEE形式のfloat及びdouble型の内部表現は、参考URLを参照下さい。 http://www.pat.hi-ho.ne.jp/ochiyasu/jouhou/2syu/jou-2-fudous.htm
- katouka09
- ベストアンサー率50% (130/256)
No.2の補足です。 あなたが使っているコンパイラは何ですか? そのコンパイラのユーザーズマニュアルにコンパイラの仕様が載っているので、まずは調べてみましょう。 intやdouble等の範囲はコンパイラの仕様によって変わる場合があるので、曖昧な回答になります。 それと、16進数を表記する場合は、0x1のように小文字のxを用います。
- nano_cat
- ベストアンサー率24% (26/106)
それはコンパイラによります。 コンパイラのマニュアルまたはヘルプ等で調べて下さい。
浮動小数点数 1ビットの符号部、11ビットの指数部、52ビットの仮数部の計64ビットで表現する。 -1.79769×10308~1.79769×10308で、有効桁数15桁 http://e-words.jp/w/E5808DE7B2BEE5BAA6E5AE9FE695B0.html
補足
>それ 何? >調べて 何を?