ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Big-Endian Little-Endian

Big-Endian Little-Endian

原创 Linux操作系统 作者:tthero00boo 时间:2013-11-04 22:58:23 0 删除 编辑
 
1. $ lscpu
2. $ echo -n I | od -to2 | awk 'FNR==1{ print substr($2,6,1)}'
0 -- On a Big Endian system (Solaris, SPARC)
1 -- On a Little Endian system (Linux, Intel)
3. $ python test_endian

$ cat test_endian
#!/usr/bin/env python
from struct import pack
if pack('@h', 1) == pack('
    print "Little Endian"
else:
    print "Big Endian"

4. $ gcc -o endian c_endian.c

# cat c_endian.c
#include
int main(void)
{
  union w
  {
    int a;
    char b;
  } c;

  c.a=1;
  printf("check: Big Endian 0 ; Little Endian 1 ; result:%d\n",(c.b==1));
  return 0;
}

一般来说,大部分用户的操作系统(如windows, FreeBsd, Linux)是Little Endian的。
少部分,如MAC OS ,是Big Endian 的。

DEC (Digital Equipment Corporation,现在是Compaq公司的一部分)和Intel的机器(X86平台)一般采用小端。
IBM, Motorola(Power PC), Sun的机器一般采用大端。
当然,这不代表所有情况。有的CPU即能工作于小端, 又能工作于大端, 比如ARM, Alpha,摩托罗拉的PowerPC。 具体情形参考处理器手册。
具体这类CPU是大端还是小端,应该和具体设置有关。
(如,Power PC支持little-endian字节序,但在默认配置时是big-endian字节序)

不同的CPU上运行不同的操作系统,字节序也是不同的,参见下表。

处理器             操作系统    字节排序
Alpha              全部     Little endian
HP-PA              NT      Little endian
HP-PA              UNIX    Big endian
Intelx86           全部     Little endian <-----x86系统是小端字节序系统
Motorola680x()     全部     Big endian
MIPS               NT      Little endian
MIPS               UNIX    Big endian
PowerPC            NT      Little endian
PowerPC            非NT     Big endian  <-----PPC系统是大端字节序系统
RS/6000            UNIX    Big endian
SPARC              UNIX    Big endian
IXP1200 ARM核心     全部     Little endian 

大小端的说法源自《格列佛游记》。我们知道,鸡蛋通常一端大一端小,小人国的人们对于剥蛋壳时应从哪一端开始剥起有着不一样的看法。同样,计算机界对于传输多字节字(由多个字节来共同表示一个数据类型)时,是先传高位字节(大端)还是先传低位字节(小端)也有着不一样的看法,这就是计算机里头大小端模式的由来了。无论是写文件还是网络传输,实际上都是往流设备进行写操作的过程,而且这个写操作是从流的低地址向高地址开始写(这很符合人的习惯),对于多字节字来说,如果先写入高位字节,则称作大端模式。反之则称作小端模式。也就是说,大端模式下,字节序和流设备的地址顺序是相反的,而小端模式则是相同的。一般网络协议都采用大端模式进行传输。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28859270/viewspace-775664/,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux 文件系统
请登录后发表评论 登录
全部评论

注册时间:2013-06-30

  • 博文量
    31
  • 访问量
    142948