2012-09-11 279 views
1

上次你一直很好,我希望你也可以給我一些建議。在matlab中讀取半精度浮點數(float16 IEEE 754r)的二進制數據

我用bit16(格式= bitn)讀取一個二進制文件到matlab中,我得到一個1和0的字符串。

bin = '1,00011,1111111111'(16比特:1.標誌,2-6指數,7-16尾數)

根據ftp://www.fox-toolkit.org/pub/fasthalffloatconversion.pdf它可以被轉換象

out = (-1)^bin(1) * 2^(bin(2:6)-15) * 1.bin(7:16) [是指數和尾數仍然二進制? ]

有人可以幫我解決問題,請告訴我如何處理pdf中提到的'eeeee'和'1.mmmmmmmmmm'。

非常感謝!

邁克爾

+0

看到這一點:http://www.mathworks.com/matlabcentral/newsreader/view_thread/157099 – slayton

+0

@slayton:感謝您的鏈接。我之前得到了這個文件,但是我對這個bitand和(2139095040)的'2139095040'來自哪裏?同一問題在下面的一些行。 – Michael

+0

@Michael:2139095040是二進制的'0b1111111100000000000000000000000',所以如果你做'bitand(bin,2139095040)/ 2^23',你會得到'bin(31.24)'的值。 – Mehrwolf

回答

1

This Guy做了精彩的C++頭文件來處理float16 - 半精度浮點。真棒!

邁克爾

相關問題