ロングダブル vs ダブル
2023-08-25 22:40:31
質問
様々なデータ型のサイズが、使用するシステムによって変わることがあることは知っています。
私はXP 32bitsを使用しており、その中で
sizeof()
演算子を C++ で使用すると、どうやら
long double
は12バイト、そして
double
は8バイトです。
しかし、ほとんどの主要なソースでは
long double
は 8 バイトであり、したがってその範囲は
double
.
どうして12バイトもあるんだ?もし
long double
が本当に 12 バイトなら、値の範囲も広がっているのでは?それとも、longシグネチャは、値がdoubleの範囲を超えるときだけ使われる(コンパイラの計算)ので、8バイトを超えるのでしょうか?
どのように解決するのですか?
引用元 ウィキペディア :
<ブロッククオートx86 アーキテクチャでは、ほとんどのコンパイラは、そのハードウェアでサポートされている 80 ビット拡張精度型として long double を実装します(データ構造を維持するために 12 または 16 バイトとして格納されることもあります)。
と
コンパイラは、現在ソフトウェアで実装されている128ビットの4倍精度フォーマットに対してlong doubleを使用することもできます。
言い換えれば、そうです。
long double
かもしれない
よりも大きな範囲の値を保存することができます。
double
. しかし、それは完全にコンパイラに任されているのです。
関連
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] 通貨を表すのにDoubleやFloatを使ってはいけないのですか?
-
[解決済み] C++11のT&&(ダブルアンパサンド)の意味とは?
-
[解決済み] C#でDecimalをDoubleに変換する方法は?
-
[解決済み] floatとdoubleの違いは何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】Enterキーを押して続行する
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み] CとC++のlong doubleとdoubleの違い [重複]について