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

字节排序函数

2016-07-26 20:35 274 查看
    考虑一个16位的整数,它由2个字节组成。内存中存储这两个字节有两种方法:一种是将低字节存储在起始地址,这称为小端字节序;另一种方法是将高序字节存储在起始地址,这称为大端字节序。下面的程序可以检测是大端存储还是小端存储:

#include <stdio.h>

int main(int argc, char *argv[])
{
union
{
unsigned short num;
unsigned char arr[sizeof(short)];
}test;

test.num = 0x0102;

if (sizeof(short) == 2)
{
if (test.arr[0] == 1 && test.arr[1] == 2)
printf("big endian\n");
else if (test.arr[0] == 2 && test.arr[1] == 1)
printf("little endian\n");
else
printf("unknown\n");
}
else
printf("sizeof(short) = %d\n",sizeof(short));

exit(0);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储 c语言 函数 内存