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 ;
}
大端模式 && 小端模式学习笔记
时间: 2024-10-12 21:05:23