大小端存储


大端模式,是指数据的高字节保存在内存的低地址中。

upload successful
4个两位16进制数=8*4=32位=4B=1int


编程判断大小端的两种方法:

  1. union 判断法

在union中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。即上述的union虽然定义了两个成员,但其实这个union只占用了4个字节(32位机器中),往a成员赋值,然后读取b就相读取a成员的低位第一个字节的值。如果机器使用大端模式,则u.a=1那a的最高字节值为1;

1
2
3
4
5
6
7
8
9
10
11
typedef union {
int i;
char c;
}my_union;

int checkSystem1(void)
{
my_union u;
u.i = 1;
return (u.i == u.c);
}

  1. 直接判断法
1
2
3
4
5
6
int checkSystem2(void)
{
int i = 0x12345678;
char *c = (char*)&i;
return ((c[0] == 0x78) && (c[1] == 0x56) && (c[2] == 0x34) && (c[3] == 0x12));
}
文章目录
| 本站总访问量次 ,本文总阅读量