我们都知道数据在计算机中的存储是以补码形式存储的。在计算机中,如果数据的高字节内容放在高地址处,低字节内容放在低地址处,我们称它为小端字节序;相反,如果数据的高字节内容放在底地址处,低字节内容放在高地址处,我们称它为大端字节序。
例如: int n=1;
它的原码,反码,补码都是 00000000 00000000 00000000 00000001
它在计算机中的小端存储字节序为 00 00 00 01
大端存储字节序为 01 00 00 00
但是我们怎么知道一个数在计算机中是以大端字节序列存储还是小端字节序存储的呢?下面我给出两种方法来求出数据在计算机中的存储方式,代码如下:
#include <stdio.h>
int main()
{
int num = 1;
char *p = (char *)#
if (*p == 0)
printf("小端\n");
else
printf("大端\n");
system("pause");
return 0;
}
除了这种方式,我们还可以用共用体的方式解决这个问题
代码如下:
#include <stdio.h>
union UN
{
char c;
int i;
}un;
int main()
{
un.i = 1;
if (un.c ==0)
printf("小端\n");
else
printf("大端\n");
system("pause");
return 0;
}