- 相關(guān)推薦
處理器是Big_endian的,則返回0;是Little_endian的,則返回1
int checkCPU()
{
{
union w
{
int a;
char b;
} c;
c.a = 1;
return (c.b == 1);
}
}
剖析:
嵌入式系統(tǒng)開發(fā)者應(yīng)該對Little-endian和Big-endian模式非常了解,
處理器是Big_endian的,則返回0;是Little_endian的,則返回1
。采用Little-endian模式的CPU對操作數(shù)的存放方式是從低字節(jié)到高字節(jié),而Big-endian模式對操作數(shù)的存放方式是從高字節(jié)到低字節(jié)。例如,16bit寬的數(shù)0×1234在Little- endian模式CPU內(nèi)存中的存放方式(假設(shè)從地址0×4000開始存放)為:內(nèi)存地址 存放內(nèi)容
0×4000 0×34
0×4001 0×12
而在Big-endian模式CPU內(nèi)存中的存放方式則為:
內(nèi)存地址 存放內(nèi)容
0×4000 0×12
0×4001 0×34
32bit寬的數(shù)0×12345678在Little-endian模式CPU內(nèi)存中的存放方式(假設(shè)從地址0×4000開始存放)為:
內(nèi)存地址 存放內(nèi)容
0×4000 0×78
0×4001 0×56
0×4002 0×34
0×4003 0×12
而在Big-endian模式CPU內(nèi)存中的存放方式則為:
內(nèi)存地址 存放內(nèi)容
0×4000 0×12
0×4001 0×34
0×4002 0×56
0×4003 0×78
聯(lián)合體union的存放順序是所有成員都從低地址開始存放,面試者的解答利用該特性,輕松地獲得了CPU對內(nèi)存采用Little-endian還是Big-endian模式讀寫,
資料共享平臺
《處理器是Big_endian的,則返回0;是Little_endian的,則返回1》(http://www.szmdbiao.com)。如果誰能當場給出這個解答,那簡直就是一個天才的程序員。【處理器是Big_endian的,則返回0;是Little_endian的】相關(guān)文章:
0的認識教學反思【精選】07-05
0~3歲的智力游戲10-21
為什么不能用0作除數(shù)10-18
文員月工作總結(jié)范文(精選007-07
考研英語0基礎(chǔ)逆襲高分方法08-16
11月18號神舟十一號宇航員返回地球通知08-19
上半年工作總結(jié)范文(4篇005-24
大學生辯論賽主持詞大全(3篇006-07