1.大小端的定义:
1.1 大端: 高字节保存在内存的低地址中 低地址----------------->高地址0x12|0x34|0x56|0x78
1.2 小端: 高字节保存在内存的高地址中 低地址------------------>高地址0x78|0x56|0x34|0x12
2.各自的优点与缺点
2.1优点
2.1.1 大端:符号位的判定固定为第一个字节,容易判断正负。
2.1.2 小段: 强制转换数据不需要调整字节内容
3.利用联合体识别大小端
联合体和结构体一样都是自定义类型。联合体也包含一系列成员,但是和结构体不一样的是这些成员共用一个空间。也就是说联合体内,任意一个成员地址在数值上都相等。联合体union的存放顺序是所有成员都从低地址开始存放,利用该特性可以轻松地获得了CPU对内存采用大端还是小端模式读写:
union w
{
int a;
char b;
} u;
int judge()
{
u test;
test.a = 1;
if(test.b == 1)
{
return 1;
}
else
{
return 0;
}
大端返回0,小端返回1