大小端
参考 大小端存储模式精解
应用场景
应用场景:大小端常用于网络主机之间传输数据
概念
1.大端模式
内存的低地址 存放 数据的高字节
2.小端模式
内存的低地址 存放 数据的低字节
区分方法
内存存储数据都是从低地址向高地址增长
所以先存入的是数据的高字节则为大端模式
先存入的是数据的低字节则为小端模式
校验方法
1.union共用体
typedef union{
int num;
char ch;
}un;
un.num = 1;
printf("%s\n", num.ch == 1 ? "小端模式" : "大端模式");
2.数据类型转换
int checkEndian(){
int i = 1;
i = *(char *)&i;//取 i 的地址,强制类型转换后解引用
return i;
}
printf("%s\n", checkEndian() == 1 ? "小端模式" : "大端模式");
优缺点
大端模式的优点
符号位在所表示数据的内存第一个字节中,能快速判断数据的正负和大小
小端模式的优点
(1)内存的低地址存放数据的低字节,所以数据强制类型转换时不用调整字节的顺序
(2)CPU做数值运算时从内存中按顺序依次由低到高取数据进行运算,直到最后刷新最高位的符号位,这样的运算方式会更高效