8

C++、Java にはすべて、言語の構文に [-]0xh.hhhhp+/-d 形式が含まれています。Python や C99 などの他の言語には、これらの文字列を解析するためのライブラリ サポートがあります (float.fromhex、scanf)。

私はまだ、この正確な 16 進エンコードされた指数形式を C# または .NET ライブラリを使用して解析する方法を見つけていません。

これを処理する良い方法、または適切な代替エンコーディングはありますか? (10 進数のエンコードは正確ではありません)。

文字列の例: 0x1p-8 -0xfe8p-12

ありがとうございました

4

2 に答える 2

2

IEEE 754r で記述され、C99、C++11、および Java でサポートされている 16 進浮動小数点形式で数値をフォーマットおよび解析するための C# コードを作成しました。コードはF# 用 の BSD ライセンスFParsecライブラリの一部であり、1 つのファイルに含まれています: https://bitbucket.org/fparsec/main/src/tip/FParsecCS/HexFloat.cs

サポートされている形式については、http://www.quanttec.com/fparsec/reference/charparsers.html#members.floatToHexStringで少し説明されています。

テスト コード (F# で記述) は、https://bitbucket.org/fparsec/main/src/tip/Test/HexFloatTests.fsにあります。

于 2013-02-19T20:43:16.067 に答える