C/C++ 關於大小端模式


大端模式:  數據的高字節存在低地址  數據的低字節存在高地址

小端模式:  數據的高字節存在高地址  數據的低字節存在低地址

 

如圖,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]);

}


此時說明該編譯器為小端模式

CSDN地址:http://blog.csdn.net/lyl_312/article/details/51405553


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM