MATLABでいくつかの浮動小数点テストベクトルを含むファイルを解析しようとしています。
ファイルの一部は次のとおりです。
b32+ +1.7FFFFFP127 -1.7FFFFFP127 +0.0P0
b32+ +1.000000P0 -1.6D0976P9 -1.6CC976P9
b32+ +1.000000P-126 -1.000000P-126 +0.0P0
b32+ -1.7FFFFFP127 +1.7FFFFFP127 +0.0P0
b32- -1.7FFFFFP127 -1.7FFFFFP127 +0.0P0
b32- +1.000000P0 -1.000000P0 +1.000000P1
b32- -1.7C3AB6P14 +1.000000P0 -1.7C3CB6P14
b32- +1.2F0948P14 +1.000000P0 +1.2F0748P14
b32- -1.000000P-126 +1.000000P-126 -1.000000P-125
b32- +1.000000P-126 +1.000000P-126 +0.0P0
b32- -1.000000P-126 +1.0410ADP-103 -1.0410AEP-103
b32- +1.7FFFFFP127 +1.7FFFFFP127 +0.0P0
b32* +1.12D2C6P92 -1.000000P0 -1.12D2C6P92
b32* +1.7FFFFFP127 -1.000000P0 -1.7FFFFFP127
b32* -1.7FFFFFP127 +1.000000P0 -1.7FFFFFP127
b32* -1.5FEA32P-51 +1.000000P0 -1.5FEA32P-51
b32* -1.000000P-126 +1.000000P0 -1.000000P-126
b32* -1.000000P0 +1.000000P0 -1.000000P0
b32* +1.000000P0 +1.000000P0 +1.000000P0
b32* +1.000000P-126 +1.000000P0 +1.000000P-126
b32* +1.000000P-126 +1.7FFFFFP127 +1.7FFFFFP1
データ型が混在しているため、基本的にこのファイルの解析方法がわかりません。
このファイルには、3つの可能な浮動小数点演算が示されています(加算:b32 +、減算:b32-、および乗算:b32 *)。最初の2つの数値はオペランドであり、最後の数値は結果です。
後で数値を32ビット浮動小数点形式でフォーマットしたいと思います(おそらく理解できます)。問題は、「b32 +」のようなものを取得し、それらを標準の浮動小数点形式に変換するために数値を変数に変換する方法がわからないことです。
符号(+/-)を見て、それに基づいて符号ビットを設定する数値のアルゴリズムを実装する予定です。'。'の間の16進数を調べます。そして「P」とそれを仮数として設定します。次に、Pの後の数値を不偏指数とします。次に、他の番号についてもこの手順を繰り返す予定です。
ありがとうございました!