不同的cpu存储方式也是不同,我们常见的x86就是小端模式,而有些arm则是大端模式。
大小端排序是针对字节之间的排序关系,而字节内部顺序是不变的。
小端:低字节排在内存的低地址,高字节排在内存的高地址
大端:高字节排在内存的低地址,低字节排在内存的高地址
例如:int a=0x12345678
小端模式存储:
内存 | 0x000000 | 0x000001 | 0x000002 | 0x000003 |
数据 | 0x12 | 0x34 | 0x56 | 0x78 |
大端模式存储:
内存 | 0x000000 | 0x000001 | 0x000002 | 0x000003 |
数据 | 0x78 | 0x56 | 0x34 | 0x12 |
联合体是公用内存,内部数据则是从低地址排序。
如果判断系统大小端即可方便使用联合体验证
typedef union { char a; int c; }Test; int check() //1--小端 0---大端 { Test t; t.c=1; if(t.a==1) return 1; else return 0; }
时间: 2024-10-16 13:18:20