大小端模式 判断方法
大端模式(Big-endian),是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的低地址中,而數(shù)據(jù)的低字節(jié)保存在內(nèi)存的高地址中,這樣的存儲模式有點兒類似于把數(shù)據(jù)當(dāng)作字符串順序處理:地址由小向大增加,而數(shù)據(jù)從高位往低位放;
小端模式(Little-endian),是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的高地址中,而數(shù)據(jù)的低字節(jié)保存在內(nèi)存的低地址中,這種存儲模式將地址的高低和數(shù)據(jù)位權(quán)有效地結(jié)合起來,高地址部分權(quán)值高,低地址部分權(quán)值低,和我們的邏輯方法一致。
下面這段代碼可以用來測試一下你的編譯器是大端模式還是小端模式:
short int x;
char x0,x1;
x=0x1122;
x0=((char*)&x)[0]; //低地址單元
x1=((char*)&x)[1]; //高地址單元
若x0=0x11,則是大端; 若x0=0x22,則是小端......
上面的程序還可以看出,數(shù)據(jù)尋址時,用的是低位字節(jié)的地址。
測試大小端l
#include.h>
int main(void)
{
? ? ? ?int ?a = 0x12345678;
? ? ? ?unsigned ? char *p = (unsigned char *)&a;
? ? ? ?if(0x78==*p)
? ? ? {
? ? ? ? ? ? ? printf("littleend\n");
? ? ? }
? ? ?else
? ? ?{
? ? ? ? ? ? ?printf("bigend\n");
? ? ?}
? ? ? ? return 0;
}
轉(zhuǎn)載于:https://www.cnblogs.com/alan666/p/8312290.html
總結(jié)
以上是生活随笔為你收集整理的大小端模式 判断方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse序列化生成serialVe
- 下一篇: 一根Express Route同时支持A