我想解析一個包含MATLAB中某些浮點測試向量的文件。在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
基本上我不知道如何解析,因爲混合數據類型的文件。
該文件中顯示了三種可能的浮點運算(加法:b32 +,減法:b32-和乘法:b32 *)。前兩個數字是操作數,最後一個數字是結果。
我想要格式化後的32位浮點格式的數字(我可能找出)。問題是我不知道如何得到像'b32 +'這樣的東西,然後把數字轉換成變量,以便將它們轉換爲標準的浮點格式。
我打算實現一個算法,用於查看符號(+/-)的數字並根據該符號設置符號位。看看'。'之間的十六進制。和'P'並將其設置爲有效數字。然後取P後的數字作爲無偏指數。然後,我打算爲其他號碼重複此過程。
謝謝!
爲什麼這個標記[標籤:C++]和[標籤:C]? – Johnsyweb 2013-02-23 01:36:08
以防萬一在該社區有人提出更好的基於c或c +的解決方案。 – Veridian 2013-02-23 01:39:49
請參閱http://stackoverflow.com/questions/2062259/using-c-c-to-efficiently-de-serialize-a-string-comprised-of-floats-tokens-and?rq=1 – 2013-02-23 02:25:41