#include <stdio.h>
bool issmall();
int main()
{
if (issmall())
{
printf("Little \n");
}
else
{
printf("Big\n");
}
262 657的二进制是
0000 0000 0000 0100 0000 0010 0000 0001
如果是Intel PC(Little-endian),这个数字将存储为
字节地址:00 01 02 03
0000 0001 0000 0010 0000 01000000 0000
如果是Motorola处理机的Mac机,在内存中摆放如下:
字节地址:00 01 02 03
0000 0000 0000 0100 0000 00100000 0001
//上面的判断测试出你的机子的类型
//下面的代码是对大小端的理解及运用
int a[5]={1,2,3,4,5};
int *p1=(int *)(&a+1);
int *p2=(int *)((int)a+1);
printf("%x %x\n",p1[-1],*p2);
return 0;
}
bool issmall()
{
union{
int j;
char c;
}temp;
temp.j=1;
if (1==temp.c)
{
return true;
}
else
return false;
}
本文通过一个简单的C语言程序介绍了如何检测计算机系统的字节序(大小端)。此外,还展示了如何理解并运用大小端概念,包括内存中数据的布局方式。这对于从事底层软件开发和硬件交互的工程师尤为重要。
1030

被折叠的 条评论
为什么被折叠?



