C++ 大端小端
大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址端。
小端模式:是指数据的高字节保存在内存的高地址中,低位字节保存在在内存的低地址端。
1) 直接读取存放在内存中的十六进制数值,取低位进行值判断
int a = 0x12345678; int *c = &a; c[0] == 0x12 // 大端模式 c[0] == 0x78 // 小端模式
2) 用共同体来进行判断
union共同体所有数据成员是共享一段内存的,后写入的成员数据将覆盖之前的成员数据,成员数据都有相同的首地址。Union的大小为最大数据成员的大小。
union的成员数据共用内存,并且首地址都是低地址首字节。Int i= 1时:大端存储1放在最高位,小端存储1放在最低位。当读取char ch时,是最低地址首字节,大小端会显示不同的值。
union w w p; { p.i = 1; int i; if(ch == 1) char ch; };