面试笔试题4--如何判断主机是大端小端?
2016-05-12 14:35
302 查看
方法1
#include<stdio.h>
int main(void)
{
unsigned int x = 0x12345678;
unsigned char *p = (unsigned char*)&x;
printf("%0x,%0x,%0x,%0x\n",p[0],p[1],p[2],p[3]);
return 0;
}
//输出结果为:78 56 34 12 (大端模式)
//输出结果为:12 34 56 78 (小端模式)
方法2
//原理:联合体union的存放顺序是所有成员都从低地址开始存放,而且所有成员共享存储空间
void IsBigEndian()
{
union temp
{
short int a;
char b;
}temp;
temp.a = 0x1234;
if( temp.b == 0x12 )//低字节存的是数据的高字节数据
{
//是大端模式
}
else
{
//是小端模式
}
}
#include<stdio.h>
int main(void)
{
unsigned int x = 0x12345678;
unsigned char *p = (unsigned char*)&x;
printf("%0x,%0x,%0x,%0x\n",p[0],p[1],p[2],p[3]);
return 0;
}
//输出结果为:78 56 34 12 (大端模式)
//输出结果为:12 34 56 78 (小端模式)
方法2
//原理:联合体union的存放顺序是所有成员都从低地址开始存放,而且所有成员共享存储空间
void IsBigEndian()
{
union temp
{
short int a;
char b;
}temp;
temp.a = 0x1234;
if( temp.b == 0x12 )//低字节存的是数据的高字节数据
{
//是大端模式
}
else
{
//是小端模式
}
}
相关文章推荐
- 剑指offer之面试题36数组中的逆序对
- 程序员装逼指南
- 剑指offer之面试题35第一次只出现一次的字符
- 剑指offer之面试题34丑数
- 剑指offer之面试题31连续子数组的最大和
- 剑指offer之面试题30最小的k个数
- 剑指offer之面试题29数组中出现次数超过一半的数字
- 总结面试中问到的一个问题构造函数、静态代码块、和调用的方法的加载顺序
- 剑指offer之面试题28字符串的排列
- 剑指offer之面试题27二叉搜索树与双向链表
- 我经历的IT公司面试及离职感受
- 面试中的排序算法总结
- java程序员必备第三方库
- 2016阿里实习生面试经历
- 笔试面试题3——虚函数的工作原理
- 笔试面试题2
- 笔试面试题1
- 游戏开发的职场前景不容乐观
- [svc]运维知识体系及职业
- 2016之web前端面试题,最全最有用