一、如何判断CPU是大端还是小端?
明白大端和小端的区别,实现起来就非常简单:
#include <stdio.h>
int main()
{
union ut{
short s;
char c[2];
}u;
if(sizeof(short) == 2)
{
u.s = 0x0102;
if(u.c[0] == 1 && u.c[1] == 2)
{
printf("big enidan/n");
}else if(u.c[0] == 2 && u.c[1] == 1)
{
printf("little endian./n");
}
return 0;
}
}
二、大端与小端相互转换
#include <stdio.h>
typdedef unsigned int u_32;
typedef unsigned short u_16;
#define BSWAP_16(x) /
(u16) ( ((((u16)