首页 > 代码库 > 大端模式 && 小端模式学习笔记

大端模式 && 小端模式学习笔记

      Big-Endian和Little-Endian的定义如下:
1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。


不同字节序如何存储数据?

看看两种方式如何存储数据,假设从地址0x00000001处开始存储十六进制数0x12345678,那么

Bit-endian 如此存放(按原来顺序存储)
0x00000001           -- 12
0x00000002           -- 34
0x00000003           -- 56
0x00000004           -- 78

Little-endian 如此存放(颠倒顺序储存)
0x00000001           -- 78
0x00000002           -- 56
0x00000003           -- 34
0x00000004           -- 12

一个很好的记忆方法是,大端序是按照数字的书写顺序进行存储的,而小端序是颠倒书写顺序进行存储的。



bool IsBigEndian()

{

int a =1 ; 

if(((char*)&a)[3] ==1)

return true ;

else

return false ;

}

----------------------

bool IsBigEndian()

{

union 

{

unsigned short a ;

char b ;

} c;


c.a =0x0102 ;


if(c.b ==1)

return true ;

else

return false ;

}


大端模式 && 小端模式学习笔记