代码实现判断主机字节序(大端 or小端 )

原创 2012年03月26日 21:18:33

字节序有两种表示方法:大端法(big ending),小端法(little  ending)。

网络字节序采用的是大端法。

主机字节序不同的CPU采用的方法不一样,可以通过代码来查看自己主机的字节序。

大端法:高位字节排放在内存低地址端,低位字节排放在内存的高地址端。

小端法:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。

看一个unsigned short 数据,它占2个字节,给它赋值0x1234。

若采用的大端法,则其低地址端应该存放的是0x12;

若采用的小端法,则其低地址端应该存放的是0x34;

可以通过联合体来获得其高低地址的数据。

测试主机字节序的代码:

#include <stdio.h>

typedef union{
	unsigned short value;
	unsigned char bytes[2];
}Test;

int main(void)
{
    Test test_value;
    test_value.value = 0x1234;

    if(test_value.bytes[0] == 0x12 && test_value.bytes[1] == 0x34)
    	printf("big ending");
    else if(test_value.bytes[0] == 0x34 && test_value.bytes[1] == 0x12)
    	printf("little ending");
    else
    	printf("use test_value error");
    return 0;
}


辨别系统是大端or小端字节序---通过联合体

字节序有两种表示方法:大端字节序(big ending),小端字节序(little  ending)。 网络字节序:采用的是大端字节序。 主机字节序:不同的CPU采用的方法不一样,可以通过...
  • fengqiaojiangshui
  • fengqiaojiangshui
  • 2015年04月12日 21:14
  • 803

文件输入输出中遇到的大端序和小端序问题

目录用 [TOC]来生成目录:目录 一 字节序 大端序和小端序 代码实现 测试字节序 二 C内存地址分配简介 三 CC内存区划分...
  • dcplove
  • dcplove
  • 2015年09月01日 11:33
  • 1119

大端字节序、小端字节序cpu判断代码

大端、小端cpu判断代码: int checkCPUendian() { union{ unsigned long int i; ...
  • vah101
  • vah101
  • 2014年11月06日 16:06
  • 942

主机字节序(大小端判断)及网络字节序

如有转载,请注明出处。 作者:super_bert@csdn 先上两种判断主机字节序的方法(C描述),再详细解释。 判断原理: 1.Union成员本身是被存放在相同的内存空间中(即共享内存),uni...
  • qq302501035
  • qq302501035
  • 2015年04月20日 15:55
  • 1445

linux网络编程一:主机字节序与网络字节序的的判断

最近在看《linux高性能服务器编程》,在此做个日记,以激励自己,同时分享于有需要的朋友。         现代CPU的累加器一次能装载至少4字节(32位),即一个整数。那么这4字节在内存中排列的...
  • jasonliuvip
  • jasonliuvip
  • 2014年03月30日 13:21
  • 1618

CPU大小端字节序的检测

机器的字节序有两种,即大端字节序和小端字节序。     大端字节序:在内存中,低地址存放数据的高位,高地址存放数据的低位     小端字节序:在内存中,低地址存放数据的低位,高地址存放数据...
  • u013427969
  • u013427969
  • 2015年07月27日 18:21
  • 409

在C++中检测和转换字节序(ENDIAN)

在做跨平台的网络数据传输和文件数据转换和移植的时候,经常会碰到CPU字节序不同导致的各种各样的问题. 于是,在编写平台无关,字符编码无关的要求之外,又有一个新的对跨平台编码的要求,那就是字节序无关....
  • azhou_hui
  • azhou_hui
  • 2014年07月08日 11:41
  • 1085

代码实现判断主机字节序(大端 or小端 )

字节序有两种表示方法:大端法(big ending),小端法(little  ending)。 网络字节序采用的是大端法。 主机字节序不同的CPU采用的方法不一样,可以通过代码来查看自己主机的字节...
  • cscmaker
  • cscmaker
  • 2012年03月26日 21:18
  • 5805

c程序辨别系统是16位or32位and辨别系统是大端or小端字节序

#include union U { short i; char a[2]; }; int main() { int *p; printf("%d\n",sizeof(p));//4 ...
  • u012409883
  • u012409883
  • 2015年03月11日 21:24
  • 549

测试平台大端还是小端(网络字节序和主机字节序)

大端和小端(网络字节序和主机字节序): 大端(Big Endian):即网络字节序。 小端(Littile Endian):即主机字节序。 记忆方式:网络的范围很大,所以大端是网络字节序。 大...
  • feifeiwuxian
  • feifeiwuxian
  • 2015年12月29日 15:37
  • 1038
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:代码实现判断主机字节序(大端 or小端 )
举报原因:
原因补充:

(最多只允许输入30个字)