练习1:
设计一个小程序来判断当前机器的字节序。
1. 大端(存储)模式:是指数据的低位字节的内容存储在内存中的高地址处,而数据的高位字节内容存储在低地址处。
2. 小端(存储)模式:是指数据的低地址出的内容存储在内存中的低地址处,而数据的高位字节内容存储在高地址处。
示例:
n=1;
n=00000000 00000000 00000000 00000001;
n是int类型,&n取出n的地址,(char*)(&n)将int*类型强制类型转换为char*类型,访问第一个字节的地址,*(char*)(&n)将该地址解引用得到第一个字节的内容。
综上所得,我们只需判断第一个字节的内容00000000还是00000001,就能知道当前机器是大端字节序存储还是小端字节序存储了。
#include<stdio.h>
int check_sys()
{
int n = 1;
return *(char*)(&n);
}
int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
}
练习2:
练习3:
练习4:
练习5:
练习6:
练习7: