大端小端 說明


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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM