Текст заголовка сообщения полностью:
Да все правильно выравнивается и преобразовывается. Здесь проблемы приема/размещения в буфере. >>
// Жестко зададим данные:
#include <stdio.h>
unsigned char buf[6];
float temp32;
unsigned char tt;
int main()
{
buf[0] = 0x00;
buf[4] = 0x44;
buf[3] = 0x33;
buf[2] = 0x22;
buf[1] = 0x11;
buf[5] = 0x55;
temp32 = *(float*)(&(buf[1]));
printf("%f\n",temp32);
tt = *( (unsigned char*)(&temp32)+0);
printf("%02x\n",tt);
tt = *( (unsigned char*)(&temp32)+1);
printf("%02x\n",tt);
tt = *( (unsigned char*)(&temp32)+2);
printf("%02x\n",tt);
tt = *( (unsigned char*)(&temp32)+3);
printf("%02x\n",tt);
return 0;
}
Печатается всегда:
716.532288
11
22
33
44