1.采用联合体:
union sem//联合体共享内存空间
{
unsigned short i; //注意这里用的是short
char a;
};
i=0x1234
2.强制转换:
short i=0x1234;
char a=i;
a=?
i | |
低字节 | 高字节 |
a |
|
若为大端字节序,a=12,即将低字节存放在内存的高地址位,高字节存放在低地址位,0x12为高字节;
若为小端字节序,a=34,即将高字节存放在内存的高地址位,低字节存在在低地址位,0x34为低字节。
对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。
有个详细描述的博客
https://www.cnblogs.com/1175429393wljblog/p/5501463.html