简述字节序的概念,并用联合体(共用体)的方式验证计算机是大端还是小端。
字节序:
1、字节序是计算机存储多字节整数序列的存储方式。
2、例如short , int ,long , long long类型就需要主机字节序
3、char 、 float 、double 浮点类型以及字符串都没有字节序的说法
4、小端字节序:低序字节存储在低地址上
大端字节序:低序字节存储在高地址上
5、计算机的内存读取:都是从低地址往高低吃读取的,然后通过大小端转换得出读取到的结果
程序代码
1 #include<stdio.h>
2
3 union a
4 {
5 unsigned int a_int;
6 unsigned short b_long;
7 };
8
9 int main(int argc, const char *argv[])
10 {
11 union a p;
12 p.b_long =0x4321;
13 if(*(char*)&p == 0x43)
14 {
15 printf("这是大端存储\n");
16 }
17 if(*(char*)&p == 0x21)
18 {
19 printf("这是小端存储\n");
20 }
21 return 0;
22 }
运行结果
ubuntu@ubuntu:作业$ gcc big_or_small.c
ubuntu@ubuntu:作业$ ./a.out
这是小端存储