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

来源:互联网 发布:arcgis for js 点闪烁 编辑:程序博客网 时间:2024/05/21 23:29

字节序有两种表示方法:大端法(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;}


原创粉丝点击