首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

什么是Big Endian跟Little Endian

2012-08-08 
什么是Big Endian和Little Endian?以下是一些要点帮助理解:1. Big/Little Endian主要指的是字节在内存中的

什么是Big Endian和Little Endian?

以下是一些要点帮助理解:

1. Big/Little Endian主要指的是字节在内存中的顺序。注意是针对字节(Byte)的。对于一个字节内的位(Bit)来说,没有Big/Little Endian的说法。非要有个说法的话,bit在byte里面还是按Big Endian的习惯表达的。


2. 什么是Big Endian 或者 Little Endian呢?

下面简单小举一例,即可阐明。假设有一个数12345,按读者习惯的话,从左到右看它,1是这个数字的最高位。现在要把它弄到内存里去,假设每个数字1到5,分别使用一个byte。

a) 那么按Big Endian的方式,从内存的地址由低到高,这个数字在内存里面仍然是按照12345的顺序。

b) 反之如果是按Little Endian的方式,从内存的地址有低到高,这个数字就被存成54321的样子了。

?

3. why are they exsited & impact?

使用Big Endian的主:

a) IBM's 370 mainframes, most RISC-basedcomputers, and Motorola microprocessors use the big-endian approach.

b) TCP/IP alsouses the big-endian approach (and thus big-endian is sometimes called network order).

c) Java Language

?

使用Little Endian的主:

a) Intel processors(CPUs) and DEC Alphas and at least some programs that run on them are little-endian

所以在实际使用中要注意如果是在不同机器上传数据的话,要有意识是不是要作Big Endian到Little Endian的转换。更具体一点,例如在C/C++语言编写的程序里,数据存储顺序是跟编译平台所在的CPU相关的;JAVA编写的程序则唯一采用Big Endian。如果用C/C++语言在x86平台下编写的程序跟JAVA程序互通的时候,就要进行必要的字节序转换工作。

热点排行