您的位置:首页 > 编程语言 > C语言/C++

C/C++ 关于大小端模式

2016-05-14 13:51 274 查看
大端模式: 数据的高字节存在低地址 数据的低字节存在高地址

小端模式: 数据的高字节存在高地址 数据的低字节存在低地址



如图,i为int类型占4个字节,但只有1个字节的值为1,另外3个字节值为0;取出低地址上的值,当其为1时则为小端模式,为0时为大端模式。

//大小端模式的判断
//方法一:利用联合体所有成员的起始位置一致,
//对联合体中的int类型赋值,然后判断联合体中char类型的值的大小

void SysCheck()
{
union IsLitte_Endian
{
int i;
char c;
};
IsLitte_Endian Check;
Check.i = 1;
bool Flag=Check.c == 1;	//Flag为true表示是小端模式,Flag为false表示为大端模式,此时Flag为true。
return;
}



//方法二:利用强制类型转换判断
//与共用体判断类似
bool IsLitte_Endian()

{

int Wvar = 0x12345678;

short *Pvar = (short*)&Wvar;

return !(0x1234 == Pvar[0]);

}




此时说明该编译器为小端模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: