大端小端及检测方法
1.大端
一个数的最高有效位排在地址值小的地址上,最低有效位排在地址值大的地址上
2.小端
一个数的最低有效位排在地址值小的地址上,最高有效位排在地址值大的地址上
一个32位int数的十六进制值为0x01234567(最高有效位——最低有效位),位于地址0x100~0x103(每个地址单元一般容量为1字节):
3.常见的大端小端应用场景
1)常用的X86结构的主机使用小端法
2)TCP/IP协议栈使用大端法
4.大端小端的检测方法
1)单独取出变量的低8位地址来验证
int main() { int i = 1; char c = *((char*)&i);//取i的地址的低8位的所存储的值赋给c if (c==1) printf("小端\n"); else printf("大端\n"); return 0; }
2)利用联合体几个不同的变量共占用一段内存的性质
union UN { char c; int i; }; int main() { UN un; un.i = 1; if (un.c==1) printf("小端\n"); else printf("大端\n"); return 0; }
posted on 2018-10-16 10:15 JoeChenzzz 阅读(1183) 评论(0) 编辑 收藏 举报