大小端模式及其验证

来源:互联网 发布:光环大数据 知乎 编辑:程序博客网 时间:2024/06/03 17:54

大小端模式

 
以前对大端和小端模式一直不太了解,而且还经常弄混淆,在此,简单的总结如下:

在计算机业界,Endian表示数据在存储器中的存放顺序。

1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

内存地址小端模式存放内容大端模式存放内容0x40000x340x120x40010x120x34
Java和所有的网络通讯协议都是使用Big-Endian的编码。
 

按照概念,通过下列程序,可以测试出你的计算机是大端还是小端模式。
 

测试程序一

#include <stdio.h>#include <stdlib.h>int main(){        short int x = 0x1234;        char x0, x1;        x0 = ((char*)&x)[0]; //low        x1 = ((char*)&x)[1]; //high        if(x0 == 0x12 && x1 == 0x34)                printf("big endian\n");        else                printf("little endian\n");}

测试程序二 

#include <stdio.h>#include <stdlib.h>int main(){        union DIAN{                char tc[2];                short int inum;        };        union DIAN dian;        dian.inum = 0x1234;        if(dian.tc[0] == 0x12 && dian.tc[1] == 0x34)                printf("big endian\n");        else                printf("little endian\n");}

 

0 0
原创粉丝点击