符号、指数、仮数を使ってIEEE754浮動小数点数を作成しようとしていますが、コンピュータ上でldexp()関数が動作しないように見えるので、作成方法があるかどうか疑問に思っていましたビットの値を直接操作することにより、値表現をいじりためldexpを使用せずに浮動小数点数を作成する方法はありますか?
答えて
1つの標準っぽいイディオムはint
又はchar
アレイの一部としてビットで動作するようになり、その自分の意図したタイプにmemcpy()
。
union
の一つのフィールドを書き込み、別のものを読んでて、またはtype-punning(別のタイプからのポインタをキャストし、逆参照、char*
以外)を介して、あなたが求めるものをやってすることは技術的にはC++標準の下で未定義の動作であることに注意してください、したがって避けるべきです。コンパイラは、プログラムがこれらの動作を実行せず、予期せぬ動作につながるという前提に基づいて最適化を適用することが知られています。
ここで考えるポインタキャストの正確な例については、Clang/LLVMの開発者はa blog postに予期しない方法で最適化する可能性のある未定義の動作を公開しています。
ビットを浮動小数点オブジェクトにコピーすると、これはコンパイラで動作することがわかります。私。あなたはコンパイラを知っています。コンパイラがタイプ・ペニングをサポートしていない場合を除き、コンパイラがわかっているときにそれを使用しない理由はありません。基本的な言語機能のサポートの欠如*を回避するためのコンパイラを使用しないでください。 –
最後に書き込まれたものとは異なる型への型付けと共用のアクセスがあります*未定義の動作* - 言語は文字通り何かを行うコンパイラを招待します。このトピックの詳細な調査については、http://blog.regehr.org/archives/959とその他のRegehr教授のブログを参照してください。 – Novelocrat
@ Cheersandhth.-Alf型のパニング(特定の型の中で)と共用体エイリアシングは、Standard C++ –
- 1. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 2. 浮動小数点数は浮動小数点数ですか?
- 3. SetRoundingMode()を使用せずに浮動小数点値を切り捨てます。
- 4. Bigquery - 浮動小数点型を浮動小数点型にキャストする方法
- 5. スクロールせずに浮動小数点数を返します
- 6. STRUCTを使用せずにバイトを浮動小数点数に変換する
- 7. jQuery animateNumber - 浮動小数点浮動小数点の方法
- 8. UITableViewでセクションヘッダの浮動小数点を作成する方法
- 9. スキャナを使用して浮動小数点数を.txtから浮動小数点数に変換する
- 10. Elmで浮動小数点数列をランダムに生成する方法はありますか?
- 11. 浮動小数点数を浮動小数点数に変換する
- 12. インデックスプロパティを数値(または浮動小数点数)にする方法はありますか?
- 13. CSSが浮動小数点浮動小数点を返す
- 14. Elasticsearchで浮動小数点浮動小数点数をfloatに変換する
- 15. 浮動小数点数を関数に使用する
- 16. Json.NETは浮動小数点数/小数点を最小小数点以下でシリアル化します。つまり、冗長な ".0"はありませんか?
- 17. 浮動小数点型の最近傍の浮動小数点数に無効な文字があります
- 18. ページスタイリング:浮動小数点を使用する代わりに
- 19. 浮動小数点divは浮動小数点または表示では動作しません
- 20. 浮動小数点数浮動小数点数値
- 21. Pythonで辞書のリスト(浮動小数点値フィールドを使用)をソートする方法はありますか?
- 22. Python:混在した文字や浮動小数点数の行があります:浮動小数点数を加算する方法は?
- 23. Pythonで浮動小数点数をフォーマットする方法は?
- 24. は、浮動小数点数
- 25. dotnetnukeのfloat内に浮動小数点がありますか?
- 26. 演算子 '/'を使用せずに2つの浮動小数点を分割する方法は?
- 27. リストから浮動小数点数を1つずつ抜き出す方法
- 28. 浮動小数点数をC#で最も近い整数に丸める方法はありますか?
- 29. C++がPythonに浮動小数点浮動小数点を変換する
- 30. 浮動小数点要素を浮動小数点要素にする
おそらく、あなたはなぜそれを回避しようとするのではなく、 'ldexp'を使うことができないのかと尋ねるべきでしょう。あなたのコンピュータが非常に奇妙な場合を除き、ldexpの使用には問題ありません。 – rici