【C語言進階】面試題:請使用代碼判斷主機存儲屬于大端模式還是小端模式?
經(jīng)典面試題,有必要了解下!
1 問題描述
【C語言進階】面試題:請使用代碼判斷主機存儲屬于大端模式還是小端模式?
2 示例代碼
為此寫了一段測試代碼:
?
#include
#include
?
int main(int argc, const char *argv[])
{
int a = 0x12345678;
unsigned char *p = (unsigned char *)&a;
?
if (*p == 0x12) {
printf("big endian
");
} else {
printf("*p = %02x
", *p);
printf("little endian
");
}
?
return 0;
}
跑一下測試結(jié)果:
正好滿足: 低地址,存儲低字節(jié) ,所以它是 小端存儲 ;反之,應(yīng)該就是 大端存儲 。
3 總結(jié)
- 有必要了解下大端存儲和小端存儲的規(guī)則;
- 記住口訣:DD為小,諧音: 弟弟為小 ;
- **即 **低地址,低字節(jié) 為小端存儲;反之, 低地址,高字節(jié) 為大端存儲。
4 更多分享
[架構(gòu)師李肯]
架構(gòu)師李肯 ( 全網(wǎng)同名 ),一個專注于嵌入式IoT領(lǐng)域的架構(gòu)師。有著近10年的嵌入式一線開發(fā)經(jīng)驗,深耕IoT領(lǐng)域多年,熟知IoT領(lǐng)域的業(yè)務(wù)發(fā)展,深度掌握IoT領(lǐng)域的相關(guān)技術(shù)棧,包括但不限于主流RTOS內(nèi)核的實現(xiàn)及其移植、硬件驅(qū)動移植開發(fā)、網(wǎng)絡(luò)通訊協(xié)議開發(fā)、編譯構(gòu)建原理及其實現(xiàn)、底層匯編及編譯原理、編譯優(yōu)化及代碼重構(gòu)、主流IoT云平臺的對接、嵌入式IoT系統(tǒng)的架構(gòu)設(shè)計等等。擁有多項IoT領(lǐng)域的發(fā)明專利,熱衷于技術(shù)分享,有多年撰寫技術(shù)博客的經(jīng)驗積累,堅信【知識改變命運,技術(shù)改變世界】!
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304791 -
存儲
+關(guān)注
關(guān)注
13文章
4296瀏覽量
85798 -
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136683 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68521
發(fā)布評論請先 登錄
相關(guān)推薦
評論