最近因爲工作需要重新學習C++,按照黑馬體系學習。。
偶遇一道面試題,記錄一下。新手較菜,大牛勿噴!!
關於大端存儲和小端存儲的概念
大端存儲:指數據的高字節保存在內存的低地址中,而數據的低字節保存在內存的高地址中,其地址由小向大增加,而數據從高位往低位存儲。
.小端存儲:指數據的高字節保存在內存的高地址中,而數據的低字節保存在內存的低地址中,這種存儲模式可以將地址的高低和數據位權有效地結合起來,高地址部分權值高,低地址部分權值低。
代碼如下:
#include<iostream>
/* 輸入數據1作爲測試數據。
1的類型爲int型,在計算機中存儲使用4個字節存儲(00000001)。
將int型轉化成char類型,讓它讀取一個字節。如果是01,
難麼就是小端存儲。如果是00,那麼就是大端存儲。
可以用union來解決。同樣是存儲(000000001)。
*/
{
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;
}