• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            C++ 大端小端

            來源:http://blog.csdn.net/hezhibo/archive/2008/05/02/2361589.aspx

            小端(高位存在高地址,低位存在低地址)\

            union   

               
            {    
                   
            long    Long;
                   
            char    Char[sizeof(long)];  
               }
            u;   

                

               
            bool    IsBigOrSmall()    //    1-小端(Intel);    0-大端(Motor)  
               {  
                   u.Long    
            =    1;  
                   
            if(    u.Char[0]    ==    1    )  
                   
            {  
                       
            return    1;  
                   }
              
                   
            else    if(    u.Char[sizeof(long)-1]    ==    1    )  
                   
            {  
                       
            return    0;  
                   }
                  
                   
            throw(    "Unknown!"    );      
               }
               



            用于指代字節順序
            ,在網絡傳輸和計算機硬件使用,通常表示邏輯最小處理單元大于物理最小處理單元時邏輯單元與物理單元的映射方式。通常情況下無論是大端還是小端都是以字節(8bit)計,在字節之內都是以大端順序排列。但不排除以后隨著計算機的發展將這個數字擴充。

            字節排序

            含義

            Big-Endian

            高位在前,低位在后。

            Little-Endian

            低位在前,高位在后

            請看下面這個例子:
            如果我們將0x1234abcd寫入到以0x0000開始的內存中,則結果為
                       big-endian     little-endian
            0x0000     0x12              0xcd
            0x0001     0x34              0xab
            0x0002     0xab              0x34
            0x0003     0xcd              0x12
            然后,假如需要從內存中取32位整數0x1234abcd中的高16位整數,就需要知道是不是big-endian,如果是,需要從0x0002地址中去取,如果是little-endian,則需要從0x0000中取。也即怎么存就怎么取。

            小終結者形式中,提取一個,兩個,四個或者更長字節數據的匯編指令以與其他所有格式相同的方式進行:首先在偏移地址為0的地方提取最低位的字節,因為地址偏移和字節數是一對一的關系,多重精度的數學函數就相對地容易寫了。
            終結者的形式中,靠首先提取高位字節,你總是可以由看看在偏移位置為0的字節來確定這個數字是正數還是負數。你不必知道這個數值有多長,或者你也不必過一些字節來看這個數值是否含有符號位。這個數值是以它們被打印出來的順序存放的,所以從二進制到十進制的函數特別有效。因而,對于不同要求的機器,在設計存取方式時就會不同。
            IBM
            370主機,多數基于RISC計算機,和Motorola的微處理器使用big-endian方法。TCP/IP也使用big-endian方法 big-endian方法也叫做網絡編碼)。對于人來說我們的語言都是從左到右的習慣方式。這看上去似乎被認為是自然的存儲字符和數字方式-你同樣也希 望以同樣的方式出現在你面前。許多人因此也會認為big-endian是流行的存儲方式,正如我們平時所讀到的。然而,Intel處理器 CPUs)和DEC Alphas和至少一些在他們的平臺的其他程序都是little-endian的。對于little-endian有一個問題,那就是如果你增加數字的 值,你可能在左邊增加數字(高位非指數函數需要更多的數字)。因此,經常需要增加兩位數字并移動存儲器里所有Big-endian順序的數字,把所有數向右移,這會增加計算機的工作量。不過,使用little-endian的存儲器中不重要的字節可以存在它原來的位置,新的數可以存在它的右邊的高位地址 里。這就意味著計算機中的某些計算可以變得更加簡單和快速。

            posted on 2008-06-26 00:26 楊粼波 閱讀(1321) 評論(0)  編輯 收藏 引用

            久久精品视频网| 久久成人精品| 97久久超碰成人精品网站| 93精91精品国产综合久久香蕉 | 久久精品国产日本波多野结衣| 久久久国产打桩机| 91久久九九无码成人网站| 人妻无码精品久久亚瑟影视| 91精品国产9l久久久久| 亚洲国产成人久久综合区| 国产亚洲欧美精品久久久| 色综合久久天天综线观看| 久久99中文字幕久久| 久久国语露脸国产精品电影 | 97视频久久久| 久久国产成人| 九九99精品久久久久久| 亚洲AV乱码久久精品蜜桃| 看全色黄大色大片免费久久久| 久久99精品国产99久久6男男| 人人狠狠综合久久亚洲高清| 国产成人久久激情91| 亚洲精品国产字幕久久不卡| 久久精品亚洲男人的天堂| 久久久国产精品福利免费| 99久久精品国产麻豆| 久久久国产精品亚洲一区| 无码国产69精品久久久久网站| 少妇熟女久久综合网色欲| 亚洲欧美国产精品专区久久| 久久久91人妻无码精品蜜桃HD| 国产伊人久久| 久久人人超碰精品CAOPOREN| 国产免费久久久久久无码| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 久久国产亚洲高清观看| 亚洲AV日韩精品久久久久久| 亚洲精品无码专区久久久| 久久婷婷五月综合色高清| 国产成人精品白浆久久69| 97久久超碰成人精品网站|