В некоторых источниках говорится, что числа с плавающей запятой IEEE754 всегда хранятся с прямым порядком байтов, но спецификация IEEE754 для чисел с плавающей запятой просто не охватывает проблему порядка байтов и может варьироваться от машины к машине.Вот пример кода для преобразования массива с плавающей запятой / байтов:
#include <stdio.h>
int main(int argc, char** argv){
char *a;
float f = 3.14159; // number to start with
a = (char *)&f; // point a to f's location
// print float & byte array as hex
printf("float: %f\n", f);
printf("byte array: %hhX:%hhX:%hhX:%hhX\n", \
a[0], a[1], a[2], a[3]);
// toggle the sign of f -- using the byte array
a[3] = ((unsigned int)a[3]) ^ 128;
//print the numbers again
printf("float: %f\n", f);
printf("byte array: %hhX:%hhX:%hhX:%hhX\n", \
a[0], a[1], a[2], a[3]);
return 0;
}
Он выводится на маленькой индийской машине:
float: 3.141590 байтов: D0: F: 49: 40 float: -3.141590 байтовый массив: D0: F: 49: C0
Теоретически на машине с прямым порядком байтов порядок байтов будет обратным.
Ссылка: http://betterexplained.com/articles/understanding-big-and-little-endian-byte-order/