BIG Endian 和 Little Endian模式

2007-6-25 21:42
 
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模式。

 
posted @ 2020-03-22 21:36  stone-stone  阅读(151)  评论(0编辑  收藏  举报