您的位置:首页 > 编程语言 > C语言/C++

C++学习---一道笔试题:测试当前电脑系统是大端存储还是小端存储数据

2017-12-12 23:21 447 查看
最近因为工作需要重新学习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++的漫漫长路上......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: