【QQ空间转移】BIG Endian 和 Little Endian模式

2007-6-25 21:42
 
BIG Endian 和 Little Endian模式

BIG Endian 和 Little Endian是计算机存储多字节数据时对字节的存储顺序采用的两种不同方式存入数据12345678Little Endian:低地址存放最低有效字节(LSB) :Intel的x86系列CPU                                              
低地址------------------------------------------------------------------------------>高地址
         |     78     |      56    |     34      |     12    |

Big Endian:低地址存放最高有效字节(MSB):Motorola的PowerPC系列CPU
低地址----------------------------------------------------------------------------->高地址
       |     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模式。

猜你喜欢

转载自www.cnblogs.com/chest/p/12548519.html