BIG Endian 和 Little Endian模式
BIG Endian 和 Little Endian是计算机存储多字节数据时对字节的存储顺序采用的两种不同方式
Store Data: 12345678
Little Endian: ( Intel x86-CPU )
Low Addr ------------------------------------------------------------------------------> High Addr
LSB | 78 | 56 | 34 | 12 |
Big Endian: (Motorola PowerPC-CPU)
Low Addr -----------------------------------------------------------------------------> High Addr
MSB | 12 | 34 | 56 | 78 |
JAVA程序的字节序与编译平台CPU无关,采用Big Endian,网络协议也采用Big Endian来传输数据
C/C++程序的字节序与编译平台CPU相关
一道C语言的试题:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1。
解答:
int checkCPU()
{
{
union w
{
int a;
char b;
} c;
c.a = 1;
return (c.b == 1);
}
}
联合体union的存放顺序是所有成员都从低地址开始存放,利用该特性,可以知道是用的Little-endian还是Big-endian模式。