IEEE-754 操作の参照実装を探しています。そのようなことはありますか?
4 に答える
私はあなたを失望させなければなりません:事実上何もありません。
技術的には、IEEE-754準拠のシステムがあります。これは、標準で説明されている不要な機能を実装していないためです。
- すべての丸めモードへのアクセス
- NaNのシグナリングをサポート
- 5つのトラップすべてのトラップをサポート
標準言語には存在しません。これは、標準の背後にある主な力であるWilliam Kahanの繰り返しの問題と、Intelプロセッサへのその適応を引き起こします。
それらをサポートする難解言語があるかどうかはわかりませんが、Java、C#、C ++、Fortranを除外することはできます。
編集:コンパイラのサポートが不足していますが、mctylrによるHausersSoftFloatの実装をお勧めします。ハウザーは自分が何をしているのか知っています。
かなり紛らわしい質問です。C ++では、この種の詳細はハードウェアまたはコンパイラによって処理されると想定されています。したがって、C ++では、浮動小数点の追加は次のようになります。
float a = 1.0;
float b = 2.0;
float c = a + b;
これはあなたが実際に意図したことではないと確信しています。おそらく、JavaScriptでIEEE-754準拠のハードウェアをエミュレートしようとするこのページの恩恵を受けるでしょうか?
あなたのための1つの回避策はPythonである可能性があります。pythonには、IEEE-75432/64ビット精度のHEX浮動小数点を変換できる関数があります
import struct
struct.unpack('!f', '41973333'.decode('hex'))[0]
アプリをPythonで作成するか、Python関数を作成してC /C++で呼び出すことができます。
C / C ++からPythonを呼び出す方法がわかりませんが、可能です。 C++からPython関数を呼び出す