1 、写一个函数用来判断机器是大端存储吗?
int is_big_endian(void) {
union {
uint32_t i;
char c[4];
} e = {0x01000000};
return e.c[0];
}
2、如果是小端存储,写一个函数将数据转换成大端存储。
unsigned int l2b(unsigned int x) {
return (((x >> 24) & 0x000000ff) | ((x >> 8) & 0x0000ff00) | ((x << 8) & 0x00ff0000) | ((x << 24) & 0xff000000));
}