答えて
、私のgithubのプロジェクトを調べる
https://github.com/MalcolmMcLean/ieee754
私もそれが少し複雑ですと、可搬性進整数を読み込むための関数に入れています最初の視界に現れるよりも。
メモリ形式をテストする場合は、特定の戦略的な値を持つ浮動小数点数を作成し、次にビットパターンを照会する必要があります。奇妙で素晴らしいハードウェアを使用している場合を除き、ゼロはすべてゼロのビットと特殊なケースにする必要があります。 1と-1は1ビット違いです。これは符号ビットです。 2と1は指数部が異なる必要があり、2のテスト能力は指数部のビットとそれがなくなった時を示すはずです。速度の2の累乗の力を試してみてください。
次に、1を2の累乗(例えば3,7など)で保存することで仮数を得ることができます。あなたは、メモリのパターンを構築することができますが、それは `float`と` double`のフォーマットは、*通常* IEEE-754ですが、これを保証するものではありません
コードのライセンスは何ですか? –
無料です。そのような数学的ルーチンは特許を取ることができません。 –
これは、符号、指数、および小数部のビット数を意味します。
あなたは、符号ビットを取得するためにstd::numeric_limits<T>::is_signed
、仮数部のビットを取得するためにstd::numeric_limits<T>::digits
を使用することができます。
あなたは指数の数字を推測するために合計をから差し引きますが、タイプにパディングがある場合は正しくないことがあります。例えば、long double
の場合はこれが典型的です。
、もちろん
問題のビット数でなく、順序だけでなく、float型のメモリ形式を検索します。これらの機能はあなたを助けません。彼らはまた、std::numeric_limits<T>::radix == 2
と仮定します。
正確なフォーマットについては、cpu architechtureのマニュアルを参照する必要があります。
は私がハードディスクに浮動小数点数を保存すると、ファイルのクロスプラットフォームを作るための良い方法があるかどうだろうか。
最も一般的な解決策は、ディスクに保存するときに浮動小数点をテキスト表現に変換することです。0x1.8p+0
。それは最も効率的ではありませんが、移植性があります(ただし、ファイルがどの文字エンコーディングを使用するかを決める必要があります。システムにネイティブでない場合、変換が必要です)。クロスプラットフォームの方法で、ディスクへの浮動小数点数を保存するには
- 1. 浮動小数点型の文字列を見つける - Python
- 2. MySqlの浮動小数点浮動小数点データ型
- 3. Bigquery - 浮動小数点型を浮動小数点型にキャストする方法
- 4. 浮動小数点型2の浮動小数点型の妥当性チェック
- 5. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 6. ソートされた浮動小数点数の最小の差を見つける
- 7. 浮動小数点型の浮動小数点ポストがポストボックス外に出る
- 8. 浮動小数点数型のC++での浮動小数点問題
- 9. 浮動小数点型浮動小数点表示が消える
- 10. 浮動小数点データ型の混乱
- 11. SSEとのiostream:浮動小数点型
- 12. 浮動小数点型の精度printf
- 13. 浮動小数点型の問題
- 14. 変数の浮動小数点浮動小数点
- 15. なぜ浮動小数点型の浮動小数点型は、正常に動作しないのですか?
- 16. 倍精度浮動小数点型+ Eigen
- 17. 浮動小数点浮動小数点浮動小数点浮動小数点数 - 浮動小数点数を持つ2つの要素:左に動くようにdivを配置する右のスタイル
- 18. 浮動小数点数浮動小数点数値
- 19. 浮動小数点数は浮動小数点数ですか?
- 20. SSE 2以上 - 浮動小数点データ型に浮動小数点数が2つしかない理由
- 21. 浮動小数点型の浮動小数点型の浮動小数点型(浮動小数点型)の対応方法を教えてください。子要素を側面に突出させる方法
- 22. 大きな浮動小数点数で床を見つけるには?
- 23. 浮動小数点型の浮動小数点型でインクリメント(演算子++)を使用していますか?
- 24. CSSが浮動小数点浮動小数点を返す
- 25. 浮動小数点値と浮動小数点値の比較
- 26. jQuery animateNumber - 浮動小数点浮動小数点の方法
- 27. ハスケル:浮動小数点のn番目のルートを見つける
- 28. 浮動小数点の浮動小数点が正しく浮動しない
- 29. 小数点浮動小数点(C++)
- 30. IE7浮動小数点浮動小数点問題
ほとんど常にIEEE 754のITをプロービングすることによって
。 ['std :: numeric_limits :: is_iec559'](http://en.cppreference.com/w/cpp/types/numeric_limits/is_iec559)を使用しているかどうかを確認できます。 'std :: numeric_limits'はあなたの型の多くのプロパティをチェックすることができますが、正確なメモリレイアウトは含まれていません。 –
これは実装によって文書化されるべきです。 – NathanOliver
あなたは 'float memory format'のためのグーグルを試みましたか?これらのタイプはCPUによって直接サポートされ、特定の標準に従います。最初のGoogleの結果は[倍精度浮動小数点形式](https://en.wikipedia.org/wiki/Double-precision_floating-point_format)です。 CPUがIEEE 754規格に準拠していない場合は、CPUのマニュアルを確認する必要があります。 –