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;
};

  

 

posted @ 2021-08-30 18:54  默行于世  阅读(300)  评论(0编辑  收藏  举报