<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)  編輯  收藏 所屬分類: 其他
    主站蜘蛛池模板: 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 久久九九久精品国产免费直播| 欧洲黑大粗无码免费| 男男gay做爽爽免费视频| 全免费a级毛片免费看不卡| 国产亚洲精品VA片在线播放| 成人av免费电影| 亚洲Av永久无码精品一区二区| 在线播放高清国语自产拍免费| 亚洲依依成人亚洲社区| 日本特黄特色aa大片免费| 精品成人一区二区三区免费视频| 亚洲国产成人精品女人久久久| 一级毛片大全免费播放下载| 亚洲高清国产AV拍精品青青草原| 在线成人精品国产区免费| 久久久久久亚洲Av无码精品专口 | 免费A级毛片无码A∨免费| 亚洲妓女综合网99| 久久不见久久见免费影院| 狠狠入ady亚洲精品| 久久亚洲中文字幕精品一区四 | 成人性生活免费视频| 国产亚洲精品仙踪林在线播放| 亚洲第一区精品观看| 国产亚洲免费的视频看| 亚洲成av人片在线看片| 国产a级特黄的片子视频免费| 精品一区二区三区免费观看 | 一级人做人a爰免费视频| 久久亚洲国产精品五月天| 1024免费福利永久观看网站| 国产精品亚洲专区无码不卡| 在线亚洲97se亚洲综合在线| 国产92成人精品视频免费| 国产精品亚洲专一区二区三区| 亚洲人成色7777在线观看| 999国内精品永久免费观看| 青青视频免费在线| 亚洲精品免费在线| 亚洲精品乱码久久久久久不卡|