問題タブ [long-double]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 特定の大きさを超える素因数を素因数できないのはなぜですか?
12 桁の素因数を計算するプログラムを C++ で作成しようとしています。これが私のコードです:
これは (少なくとも) 小さい数値では問題なく機能しますが、非常に大きな数値を使用すると機能しなくなります。どうしてこれなの?より大きな整数型を使用する必要がありますか? それとも、コード自体に何か問題がありますか?
c - long-double 計算機が精度を失うのはいつですか?
私の仕事は、 で動作する電卓のコードを書くことでしたlong double
。ある時点以降、電卓は精度を失うことが判明しました。たとえば、正しく計算されますが、結果が得られる9999999 ^ 2
限り、99999999 ^ 2
本来よりも 1 大きくなります。浮動小数点数の精度についてはすでに読んだことがありますが、すべての質問は小数に関するものです。gmp ライブラリを使用して修正できることはわかっていますが、私の質問は次のとおりです。
この問題に取り組む他の方法はありますか?
long double 計算機が正確であるポイントを計算/表示する方法は?
main.c
evalexpression.c
calcfilter.c
floating-point - 使用されている「ロングダブル」タイプを確認することはできますか?
"long double" 型が "double" の同義語であるか、真の 128 ビット IEEE 4 倍精度であるか、80 ビット Intel 拡張フォーマットであるか、または "ダブルダブル」。
実行時にこれを確認することは可能ですか? どのように?
c - AT&Tアセンブリで倍精度の80ビット浮動小数点数をメモリからXMM0に移動するにはどうすればよいですか
積分を計算する AT&T アセンブリ関数を作成しました。C で記述されたコードによって呼び出されるため、戻り値として渡す必要があります。単精度float
および倍精度として正常に返すことができましたdouble
。しかし、80 ビットの拡張倍精度で計算できることはわかっているので、それを C に渡したいと思っています。
渡したい値が、TOP が指す FPU レジスタで指されていると仮定しましょう。関数を呼び出す方法は次のとおりです。
フロートの場合:
ダブルの場合:
私の質問は次のとおりです。Cがレジスタ long double
から読み取れるように、次のコードをどのように完成させることができますか。%XMM0
ロングダブルの場合:
その後どうすればいいですか?max
からに80 ビットを移動するにはどうすればよい%XMM0
ですか?
c - C の long double の書式指定子 %Lf が期待どおりに機能しない
C の基本をオンライン ビデオで学習しているときに、作成者は以下のコードを共有して、float、double、long double の違いを見つけました。このプログラムは、64 ビットの Windows 10 ラップトップで実行されている Eclispse で実行しました。
どういうわけか、期待される出力が得られません。Eclipse コンソールで取得した出力を追加しました。誰が何が悪かったのかを理解するのを手伝ってくれますか
double - double ではなく long double を返します
PCのイプシロンを見つけたいプログラムをc ++で書いています。結果を倍精度 (2.2204460492503131 E-16) にしたいのですが、代わりに出力は 1.0842 E-019 になり、これは長い倍精度のイプシロンです。
私のプログラムはこれです:
c++ - コンピュータメモリのように long double のバイナリ表現を印刷する方法は?
long double
何らかの理由で、数値のバイナリ表現を出力する必要があります。コンピューターのメモリに残っている正確な形式を確認したい。
私は次の質問に答えましたunion
。の場合float
、代替データ型はunsigned int
両方とも 32 ビットでした。についてdouble
はunsigned long int
、両方とも 64 ビットでした。しかし oflong double
では、96 ビット/128 ビット (プラットフォームによって異なります) であり、同様の同等のメモリ コンシューマーはありません。それで、解決策は何でしょうか?
訪問した質問:
- C++ で浮動小数点数のバイナリ表現を出力します
- double のバイナリ表現
- double の正確なバイナリ表現
- float または double のバイナリ表現を表示するにはどうすればよいですか?
注意:
これは、数値がメモリに保存されている方法を (cout を使用して) 印刷するにはどうすればよいですか?という質問の重複としてマークされています。!
本当にそうですか?質問で言及された質問は、整数について話し、その解決策として受け入れbitset
られたのは、浮動小数点部分を切り捨てることでした。私の主な見解は、その質問の内容とは関係のない浮動小数点表現です。