Как мне взять четыре полученных данных байт и собрать их в число с плавающей запятой число?
Прямо сейчас у меня есть байтов , хранящихся в массиве, который будет: receive_data [1] ... receive_data [4] . Я хотел бы сохранить эти четыре байта как одну 32-битную одинарную точность float .
-Спасибо
На самом деле я получаю пакет с 19 байтами в нем и собираю два набора по четыре байта, чтобы получить два числа с плавающей запятой. Таким образом, receive_data [1] до receive_data [4] - это одно число с плавающей запятой, а receive_data [5] до receive_data [8] - прочее ...
* ОБНОВЛЕНИЕ: **** ** Подробнее ...
Первый бит , или знак бит с плавающей точкой , является седьмым битом первого байта , вот что я сделал с проверить ...
#define CHECK_BIT(var,pos) ((var) & (1<<(pos)))
if( CHECK_BIT(received_data[1], 7)) //set or clear LED2
{LATAbits.LATA2=1;}else{LATAbits.LATA2=0;}
if( CHECK_BIT(received_data[5], 7)) //set or clear LED3
{LATAbits.LATA3=1;}else{LATAbits.LATA3=0;}
Затем я проверил это, отправив чередующиеся положительные и отрицательные числа из моего источника данных, которые должны были соответственно изменить светодиоды, и это работало.
Пока все это верно, это означает, что байты находятся в правильном порядке, но они хранятся в порядке байтов, правильно? Будет ли это храниться в поплавке в правильном порядке? Мне еще не повезло, разбирая байты и читая их как число с плавающей точкой ...
Если у кого-то есть опыт, я использую компилятор C18 MPLAB IDE.
ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ:
У меня запущено приложение! Теперь исправлены незначительные ошибки!
СПАСИБО!
Спасибо за помощь, ребята! Я новичок в stackoverflow, но это сообщество здесь действительно круто! И такой инструмент действительно бесценен! Я не могу даже начать говорить вам, сколько времени и разочарований вы все спасли меня!