從我正在使用的庫中,我收到了一個數組ushort
。C#:將ushort轉換爲浮點數
我想將它們轉換爲float
陣列:第一ushort
表示第一float
和第二ushort
的16 MSB LSB是的第一float
16,依此類推。
我試着用類似於以下,但價值被鑄造爲整數的值,而不是原始位:
ushort[] buffer = { 0xBF80, 0x0000 };
float f = (uint)buffer[0] << 16 | buffer[1];
// expected result => f == -1 (0xBF800000)
// effective result => f == 3.21283686E+9 (0x4F3F8000)
什麼建議嗎?
固定大小數組的C#語法是'fixed ushort buffer [2];',我不確定它是否與'[FieldOffset]'結合使用。 您不能使用普通的C#數組,因爲它會將指針轉換爲數組,而不是數組內容。 – Daniel 2012-02-03 14:56:05
@Daniel謝謝,我最近沒有用C#編寫程序。 – 2012-02-03 15:42:44