Имеются 2 байта.(старший байт и младший) Как получить из них число типа float.
Любые 4 байта образуют валидное (или специальное) число типа float, так что вы можете дополнять нулями с любых сторон и в любых комбинациях.
Но! .. числа с точкой могут иметь разную длину. Возможно у вас т.н. половинный флоат (half float), записываемый в 2 байтах. См. картинку:
Как было сказано выше, в комментариях, теперь идите читать документацию к своему контроллеру и узнаете что это за 2 байта и как они образуют значение - half float это, или целое с фиксированной точкой, или мантисса/экспонента отдельно, или дробь, или ещё как. Согласно этому, уже смотрите как их надо переводить в стандартный float.
По сведениям MSDN порядок байт зависит от архитектуры компьютера. Архитектуру можно узнать, воспользовавшись статическим полем BitConverter.IsLittleEndian
Подробнее читайте раздел комментарии здесь: https://msdn.microsoft.com/ru-ru/library/system.bitconverter%28v=vs.110%29.aspx
Структура чисел описана на Wiki.
Одинарная точно имеет такую структуру:
S-E-F
S — знак, E — показатель степени, I — целая часть, F — дробная часть Так же, как и для целых, знаковый бит — старший.
Размеры полей в битах:
1-8-23
Соответственно, если ты подашь данные в этом порядке, то у тебя все должно получится.
Соответсвенно, ты так же можешь из известного тебе числа получить массив байт и посмотреть, как это все устроено.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как полностью ограничить ввод текста в ячейку DataGridView
Доброго времени суток) что - то впал в ступор, не могу ничего придумать