判断平台是小端序还是大端序

来源:互联网 发布:免费下载淘宝网2015 编辑:程序博客网 时间:2024/05/19 14:51

在设计计算机时,有两个不同的体系结构来处理内存存储区,他们被称为大字节序和小字节序。

字节序是一个处理器架构特性,用于指示像整数这样大数据类型的内部字节顺序。几乎所有的机

器上,多字节对象都被存储为连续的字节序列 运行在同一台电脑上的进程在在英特尔的计算机

上,低位字节被优先存储。这意味着像 0x1234 十六进制单词存储作为 (0x34 0x12) 在内存中。

对于四个字节的值 ;例如,0x12345678 将存储为 (0x78 0x56 0x34 0x12)。"较大的一端在"这样

做是以相反的方式,因此 0x1234 作为 (0x12 0x34) 存储在内存中。

所以在从一个平台移植到另一个平台的时候,需要考虑字节序。

下面是判断平台字节顺的代码。

#include <stdio.h>
int main(void)
{
int iNum = 0x04030201;
char *pcNum = (char *)&iNum;
if (*pcNum == 0x04)
printf("big edum\n");
else if (*pcNum == 0x01)
printf("small edum\n");
return 0;

}

低地址存低位为小端,低地址存高位则大端

0 0