大小端字节序存储:是以字节为单位讨论它在内存中的存储顺序,而不是更小的二进制位
例如:
int main() {int a = 0x11223344;return 0;
}
a在内存中的存储16进制为44 33 22 11,两个16进制为一个单位进行存储,而两个十六进制位等于八个比特位,也就是一个字节
0x11223344换算为2进制为等于00010001 00100010 00110011 01000100,
44为低字节内容,11为高字节内容,像上图中低字节内容存放在低地址处的我们称为小端字节序存储,相反把低字节内容存放在高地址处的我们称为大端字节序存储
如何判断机器的大小端?
#include<stdio.h>
int check_sys() {int a = 1;return *(char*)&a;//对&a强制转换为char类型指针,再进行解引用,char指针解引用时只是取出第一个字节
}int main() {int ret = check_sys();if (ret == 1){printf("小端\n");}else{printf("大端\n");}return 0;
}