您的位置:首页 > 其它

大端(Big Endian)和小端(Little Endian)的区别

2017-04-13 22:32 555 查看
大端(Big Endian)和小端(Little Endian)的区别
        一、背景

        在C/C++中,我们经常会处理位运算。不同的系统字节的排列就不一样,有的系统是大端排列,有的系统是小端排列。因此,处理位运算也会因不同的系统而不一样。下面我总结一下大端(Big Endian)和小端(LittleEndian)的区别。

[b]        二、大端[/b]

        大端又叫网络字节序。最高有效位存储在低位内存地址,最低有效存储位存储在高位内存地址。

        如下所示:int i=0x11223344的变量,最低有效位为44,最高有效位为11。在大端系统中,最高有效位存储在低地址内存中,最低有效位存储在高地址中。

         


[b]        三、小端[/b]

        最高有效位存储在高位内存地址,最低有效位存储在最低位内存地址。

        如下所示:nt i=0x11223344的变量,最低有效位为44,最高有效位为11。在小端系统中,最高有效位存储在高地址内存中,最低有效位存储在低地址中。

         


 

[b][b]        四、测试码码[/b][/b]

#include <stdio.h>

int main(){

int x = 0x11223344;

char *p= (char *)&x;
char buf[20]={0};
sprintf(buf,"%x,%x,%x,%x",p[0],p[1],p[2],p[3]);

printf("%s \n",buf);

}


        打印结果为:44,33,22,11。  从这个例子中能看出系统是小端系统。因为系统是小端系统所以最低有效位的值44存储在内存地址小的一端。

[b]        五、总结[/b]

        1、在大端系统中,最高有效位存储在低地址内存中,最低有效位存储在高地址中。

        2、在小端系统中,最高有效位存储在高地址内存中,最低有效位存储在低地址中。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C