C++學習---一道筆試題:測試當前電腦系統是大端存儲還是小端存儲數據

最近因爲工作需要重新學習C++,按照黑馬體系學習。。

偶遇一道面試題,記錄一下。新手較菜,大牛勿噴!!



關於大端存儲和小端存儲的概念


大端存儲:指數據的高字節保存在內存的低地址中,而數據的低字節保存在內存的高地址中,其地址由小向大增加,而數據從高位往低位存儲。

       .小端存儲:指數據的高字節保存在內存的高地址中,而數據的低字節保存在內存的低地址中,這種存儲模式可以將地址的高低和數據位權有效地結合起來,高地址部分權值高,低地址部分權值低。


代碼如下:


#include<iostream>

/* 輸入數據1作爲測試數據。

1的類型爲int型,在計算機中存儲使用4個字節存儲(00000001)。

  將int型轉化成char類型,讓它讀取一個字節。如果是01,
難麼就是小端存儲。如果是00,那麼就是大端存儲。
可以用union來解決。同樣是存儲(000000001)。
*/

int sys_check()
{
union UN
{
int i;
char c;
}un;
un.i = 1;
if (un.c == 1)
{
return 1; //1表示小端
}
else
{
return 0;//0表示大端
}
}
int main()
{
int ret = sys_check();
if (ret == 1)
{
printf("litter\n");
}
else
{
printf("big\n");
}
system("pause");
return 0;
}


小蝸牛,爬行在C++的漫漫長路上......
發佈了10 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章