大端小端 说明

1.引入

  计算机的字长一直在增长,从4位开始,经过8、16、32、64位,以后可能还会有更多的位出现。现在的计算机还都是以字节(即8个bit位)作为地址编址单元

  编程语言中有许多内置的数据类型,有整型,浮点型等。每种内置类型所占用的字节数是不相同的。

  大端小端就是指在一个内置数据类型中,数据的存放顺序,分为两种,即小端优势和大端优势。

2.概念

  大端优势:数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中

  小端优势:数据的低字节存储在低地址中,而字数据的高字节则存放在高地址中(所谓的“高高低低”)

3.C代码测试大端小端

  说明:C语言内置类型int默认是分配4个字节。从输出来看高地址输出的是数据的高字节部分,所以是小端优势。

#include<stdio.h>
int main()
{
    unsigned int a=0x12345678;  //16进制数
    char *d=(char*)&a;

    printf("%x %x\n",d,*d);         //输出:22ff18 78
    printf("%x %x\n",d+1,*(d+1));   //输出:22ff19 56
    printf("%x %x\n",d+2,*(d+2));   //输出:22ff1a 34
    printf("%x %x\n",d+3,*(d+3));   //输出:22ff1b 12
    return 0;
}

4.图示

  

 5.再说明

   大端小端完全是设计的原因,不是因为有多个字节先写后写的问题。

   字长32位、64位的机器在CPU设计时,就可以使用32或64条数据线一次读或写多个字节数据。又因为可以一次读或写多个字节数据,有的RAM设计才有了地址对齐一说。

 

地址对齐:http://www.cnblogs.com/xudong-bupt/archive/2013/05/13/3076024.html

  

posted on 2013-05-13 15:15  旭东的博客  阅读(1897)  评论(9编辑  收藏  举报

导航