大端(Big-endian) 和小端(Little-endian) 区别
端模式(Endian )的这个词出自Jonathan Swift 书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian ,从尖头开始将鸡蛋敲开的人被归为Littile Endian 。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian )敲开还是从小头(Little-Endian )敲开。在计算机业Big Endian 和Little Endian 也几乎引起一场战争。在计算机业界,Endian 表示数据在存储器中的存放顺序。下文举例说明在计算机中大小端模式的区别。
如果将一个32 位的整数0x12345678 存放到一个整型变量(int )中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。
地址偏移 |
大端模式 |
小端模式 |
0x4000 |
0x12 |
0x 78 |
0x4001 |
0x 34 |
0x 56 |
0x4002 |
0x 56 |
0x 34 |
0x4003 |