<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 134,comments - 22,trackbacks - 0
    關于字節序(大端法、小端法)的定義
    《UNXI網絡編程》定義:術語“小端”和“大端”表示多字節值的哪一端(小端或大端)存儲在該值的起始地址。小端存在起始地址,即是小端字節序;大端存在起始地址,即是大端字節序。

     

    也可以說:
    1.小端法(Little-Endian)就是低位字節排放在內存的低地址端即該值的起始地址,高位字節排放在內存的高地址端。
    2.大端法(Big-Endian)就是高位字節排放在內存的低地址端即該值的起始地址,低位字節排放在內存的高地址端。

    舉個簡單的例子,對于整形0x12345678。它在大端法和小端法的系統內中,分別如圖1所示的方式存放。

    zijiexu_pic_1 

     

    網絡字節序

    我們知道網絡上的數據流是字節流,對于一個多字節數值,在進行網絡傳輸的時候,先傳遞哪個字節?也就是說,當接收端收到第一個字節的時候,它是將這個字節作為高位還是低位來處理呢?
    網絡字節序定義:收到的第一個字節被當作高位看待,這就要求發送端發送的第一個字節應當是高位。而在發送端發送數據時,發送的第一個字節是該數字在內存中起始地址對應的字節。可見多字節數值在發送前,在內存中數值應該以大端法存放。
    網絡字節序說是大端字節序。
    比如我們經過網絡發送0x12345678這個整形,在80X86平臺中,它是以小端法存放的,在發送前需要使用系統提供的htonl將其轉換成大端法存放,如圖2所示。

    zijiexu_pic_2

     

    字節序測試程序
    不同cpu平臺上字節序通常也不一樣,下面寫個簡單的C程序,它可以測試不同平臺上的字節序。
    #include <stdio.h>
    #include <netinet/in.h>
    int main()
    {
        int i_num = 0x12345678;
        printf("[0]:0x%x\n", *((char *)&i_num + 0));
        printf("[1]:0x%x\n", *((char *)&i_num + 1));
        printf("[2]:0x%x\n", *((char *)&i_num + 2));
        printf("[3]:0x%x\n", *((char *)&i_num + 3));
    10   
    11      i_num = htonl(i_num);
    12      printf("[0]:0x%x\n", *((char *)&i_num + 0));
    13      printf("[1]:0x%x\n", *((char *)&i_num + 1));
    14      printf("[2]:0x%x\n", *((char *)&i_num + 2));
    15      printf("[3]:0x%x\n", *((char *)&i_num + 3));
    16   
    17      return 0;
    18  } 


    在80X86CPU平臺上,執行該程序得到如下結果:
    [0]:0x78
    [1]:0x56
    [2]:0x34
    [3]:0x12

    [0]:0x12
    [1]:0x34
    [2]:0x56
    [3]:0x78

    分析結果,在80X86平臺上,系統將多字節中的低位存儲在變量起始地址,使用小端法。htonl將i_num轉換成網絡字節序,可見網絡字節序是大端法。

    總結點:80X86使用小端法,網絡字節序使用大端法。

    posted on 2009-12-31 21:33 何克勤 閱讀(31371) 評論(0)  編輯  收藏 所屬分類: 其他
    主站蜘蛛池模板: 日本免费高清一本视频| 免费无码又黄又爽又刺激| 亚洲精品无码专区2| 久久久久久久久无码精品亚洲日韩| 成人午夜免费福利视频| 久久亚洲AV成人无码国产| 99久久久国产精品免费牛牛 | 午夜亚洲国产理论片二级港台二级| 中文字幕av无码无卡免费| 亚洲一线产品二线产品| 国产视频精品免费| 一级A毛片免费观看久久精品 | 亚洲电影免费观看| 国产99在线|亚洲| 国产精品久免费的黄网站| 一级毛片在线完整免费观看| 亚洲日韩精品一区二区三区| 久久精品一区二区免费看| 亚洲理论片中文字幕电影| 午夜免费福利在线| 无码AV动漫精品一区二区免费 | 亚洲一区在线观看视频| 国产成人青青热久免费精品| 国产精品免费久久久久影院| 亚洲成A∨人片在线观看不卡 | 国产自产拍精品视频免费看| yellow免费网站| 综合自拍亚洲综合图不卡区| 国内自产少妇自拍区免费| a级毛片免费高清视频| 亚洲日本在线免费观看| 国产免费私拍一区二区三区| 中文精品人人永久免费| 亚洲一级毛片在线观| 免费一级成人毛片| 少妇人妻偷人精品免费视频| 亚洲av无码日韩av无码网站冲| 在线A亚洲老鸭窝天堂| 人成午夜免费视频在线观看| 男女污污污超污视频免费在线看| 亚洲精品无码不卡|