作者:素描淡写的快乐_855 | 来源:互联网 | 2023-09-04 18:07
编程判断大端方式还是小端方式
我自己的理解和代码如下:
如果数字0x12345678
那么大端方式从低地址到高地址依次存储 0x12 0x34 0x56 0x78
如果是小端方式的话从低地址到高地址依次存储 0x78 0x56 0x34 0x12
我的程序如下:
1 2 3 4 5 6 7 8 9 10 11 12
| int main()
{
unsigned int i=0x12345678;
cout< char *p=(char *)&i;
if(*p==0x78)
cout<<"little Endition"< else
cout<<"Big Endition"<
return 0;
} |
结果输出却让我大跌眼镜
输出我有点看不懂,一般笔记本不都是大端方式吗?
还有一个问题,编程实现大端方式小端方式,我在网上搜了下还有用UNION联合体,没看懂,求解答。联合体不是在同一时刻只能存储一个变量吗,在给c.a赋值后,c.b怎么可能为1呢?
1 2 3 4 5 6 7 8 9 10 11 12
| int checkCPU()
{
{
union w
{
int a;
char b;
}c;
c.a = 1;
return (c.b == 1);
}
} |
附上个人电脑信息:
MacBook Pro (Retina, 13-inch, Early 2015)
处理器 2.7 GHz Intel Core i5
编辑器 Xcode6