Я так и делаю когда принимаю, нормальный флоат, но мне передают 16 битный флоат двумя байтами, так что приведённый више код не поможет. А шарки помимо стандактного 32 битного также поддерживают укороченый формат, вот выдержка из "ФОРМАТЫ ДАННЫХ ПРОЦЕССОРОВ SHARC ADSP-21000"
Цитата
УКОРОЧЕННЫЙ ФОРМАТ ДАННЫХ С ПЛАВАЮЩЕЙ ТОЧКОЙ
Процессоры ADSP2106x поддерживают 16-разрядный тип данных с плавающей
точкой и выполняют команды преобразования форматов. Укороченный формат данных с
плавающей точкой содержит 11-разрядную мантиссу, 4-разрядный порядок и знаковый бит,
как показано на рис. С3. 16-разрядные числа размещаются в младших 16 разрядах 32-битного
формата.
15 14 11 10 0
S е3 e0 1 . f10 f0
Скрытый бит Десятичная точка
Рис. С3. 16-разрядный укороченный формат данных с плавающей точкой
Преобразование форматов с плавающей точкой 32-в-16 и 16-в-32 выполняется за 1
цикл при помощи команд устройства сдвига FPACK и FUNPACK соответственно (см.
описание этих команд в справочнике по вычислительным операциям).