Из библиотеки Я работаю, я получаю массив ushort
.
Я хочу преобразовать их в массив float
: Первый ushort
представляет 16 MSB первого float
и второго ushort
- это 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)
Есть предложения?