<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      大端序與小端序——字節序與位域的存儲

        談到字節序的問題,必然牽涉到兩大CPU派系——Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big-endian(大端序、大字節序、高字節序)方式存儲數據,而x86系列則采用little-endian(小端序、小字節序、低字節序)方式存儲數據。

        何為大端序和小端序?

        大端序:字數據的高字節存儲在低地址中。

        小端序:字數據的低字節存儲在低地址中。

        其實這兩個概念不難理解,但是比較容易記混。由于大端序和小端序都是從存儲器的低地址開始向高地址存儲數據,不同的是一個字數據中先存高字節還是先存低字節。可以記住這樣一個口訣:“高大低小”。“高”是指高字節,“大”是指大端序,“低”是指低字節,“小”是指小端序,“高大低小”也即先存高字節為大端序,先存低字節為小端序。

        舉個常見的例子。

        位寬為32bit的CPU,要存儲的字數據為0x1234abcd,起始地址為0x4000。

        大端序:

       地址   0x4000   0x4001   0x4002   0x4003 
       內容   0x12   0x34   0xab  0xcd

        小端序:

       地址   0x4000   0x4001   0x4002   0x4003 
       內容   0xcd   0xab  0x34   0x12

        以上是字節域中,比較容易理解。

        下面說一下在位域中。

        先看一個例子。

       1 typedef struct tagExp
       2 {
       3     WORD bit4:4;
       4     WORD bit3:3;
       5     WORD bit2:2;
       6     WORD bit7:7;
       7 } Example;
       8 
       9 union
      10 {
      11     Example tExp;
      12     WORD result;
      13 } Test;
      14 
      15 Test.tExp.bit4 = 10;
      16 Test.tExp.bit3 = 5;
      17 Test.tExp.bit2 = 1;
      18 Test.tExp.bit7 = 8;

        Test.Result輸出是多少呢?

        答案是,在Intel CPU上得到的結果為0x10da,在MPC8560 CPU得到的結果為0xaa88。

        下面來分析一下。

        在Intel CPU中,采用的是little-endian,從存儲器的低字節開始存儲,在一個字節中,從低位開始存儲,低bit位存儲在低bit地址。也即

        (圖中,yellow-bit4,green-bit3,blue-bit2,white-bit7)

        在MCP8560 CPU中,采用的是big-endian,同樣從存儲器的低字節開始存儲,而在一個字節中,是從高位開始存儲,高bit位存儲在高bit地址。也即

        (圖中,yellow-bit4,green-bit3,blue-bit2,white-bit7)

        位域比字節域更深層了一步,是從bit的角度解釋了大端序和小端序。

        綜合起來,就是兩句話。

        高大低小:先存高字節為大端序,先存低字節為小端序。

        高高低低:大端序先把高bit位存儲在高位地址,小端序先把低bit位存儲在低位地址。

        最后附加一個常用的C程序來判斷是大端序還是小端序。

       1 bool checkCPU()
       2 {
       3     union 
       4     {
       5         int a ;
       6         char b ;
       7     } c;
       8  
       9     c.a = 1 ;
      10  
      11     return(c.b == 1)
      12 }

       

      posted @ 2012-08-14 17:10  大旭  閱讀(5916)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 黑人异族巨大巨大巨粗| 久久精品波多野结衣| 久久欧洲精品成av人片| 亚洲免费成人av一区| 淄博市| 日韩精品亚洲精品第一页| 理论片午午伦夜理片影院99| 成人一区二区不卡国产| 精品91在线| 一区二区中文字幕久久| 激情亚洲一区国产精品| 吉川爱美一区二区三区视频| 国产精品不卡区一区二| 亚洲精品麻豆一区二区| 中文字幕av中文字无码亚| 夜夜爽免费888视频| 欧洲精品色在线观看| 伊人激情av一区二区三区| 欧美牲交a欧美牲交aⅴ免费真| 欧美不卡无线在线一二三区观| 精品人妻久久久久久888| 亚洲欧洲日产国无高清码图片| 国产91午夜福利精品| 激情无码人妻又粗又大| 无码乱人伦一区二区亚洲| 久久精品女人的天堂av| 人人妻人人爽人人澡av| 久久97超碰色中文字幕蜜芽| 人人澡人摸人人添| 人妻少妇偷人精品一区| 国产福利深夜在线播放| 美日韩在线视频一区二区三区| 亚洲熟少妇在线播放999| 中文毛片无遮挡高潮免费| 亚洲精品一二三伦理中文| 亚洲av日韩在线资源| 92久久精品一区二区| 日本伊人色综合网| 欧美牲交A欧美在线| 亚洲熟女精品一区二区| 亚洲另类激情专区小说图片|