国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

理解字節(jié)序

henry14 / 2212人閱讀

摘要:什么是字節(jié)序字節(jié)序,顧名思義就是字節(jié)的順序。因此,單字節(jié)的數(shù)據(jù)如或的類型的數(shù)據(jù)沒有字節(jié)序這一說,因?yàn)楂@取它只需要讀取一個(gè)字節(jié)。主機(jī)序機(jī)器的字節(jié)序,有大端模式也有小端模式,根據(jù)具體機(jī)器的處理決定的,小端模式較常見。

1、什么是字節(jié)序

字節(jié)序,顧名思義就是字節(jié)的順序。更具體的講,它是多字節(jié)數(shù)據(jù)存儲(chǔ)和傳輸時(shí),字節(jié)的順序。

2、為什么有“字節(jié)序”這個(gè)東西?

因?yàn)槲锢韮?nèi)存是以字節(jié)為單位進(jìn)行數(shù)據(jù)存儲(chǔ),也就是我們常說的計(jì)算機(jī)基本單位為字節(jié)。
因此,單字節(jié)的數(shù)據(jù)(如c或java的char類型的數(shù)據(jù))沒有字節(jié)序這一說,因?yàn)楂@取它只需要讀取一個(gè)字節(jié)。而多字節(jié)數(shù)據(jù),由于有多個(gè)字節(jié),所以在存儲(chǔ)和傳輸可以使用不同的順序進(jìn)行操作。

3、舉個(gè)例子

十六進(jìn)制數(shù) 0x12345678 共占4個(gè)字節(jié),分別是0x12、0x34、0x56、0x78,因此在該數(shù)字中0x12屬于高位數(shù)據(jù),0x78屬于地位數(shù)據(jù)。

注:
可以把內(nèi)存看成是一個(gè)很大的數(shù)組,4G內(nèi)存則是一個(gè)長(zhǎng)度為4294967296的數(shù)組。
該數(shù)組的索引其實(shí)就是內(nèi)存地址,左邊是比較小的地址,右邊則越來越大,直至最大值。

第一種順序:低地址存放高位數(shù)據(jù),叫大端模式

第二種順序:低地址存放低位數(shù)據(jù),叫小端模式

兩者,大端模式比較符合人類的閱讀習(xí)慣;小端模式更符合計(jì)算機(jī)的處理方式,因?yàn)橛?jì)算機(jī)從低位開始處理。

4、大小端的應(yīng)用場(chǎng)景。

網(wǎng)絡(luò)序:也稱為網(wǎng)絡(luò)字節(jié)序,都是大端模式。因?yàn)門CP/IP協(xié)議對(duì)各層協(xié)議統(tǒng)一規(guī)定采用大端模式。

主機(jī)序:機(jī)器的字節(jié)序,有大端模式也有小端模式,根據(jù)具體機(jī)器的處理決定的,小端模式較常見。

那么,在進(jìn)行網(wǎng)絡(luò)通訊時(shí),在將本地?cái)?shù)據(jù)發(fā)送到網(wǎng)絡(luò)上就需要注意這個(gè)順序。如果本地機(jī)器的字節(jié)序是小端模式,則需要先轉(zhuǎn)換成大端模式后再進(jìn)行發(fā)送;如果本地已經(jīng)是大端模式,則可以直接發(fā)送。

ps.在私有協(xié)議上的數(shù)據(jù),只要收發(fā)兩端約定好,用什么順序都行。不過,還是建議用網(wǎng)絡(luò)序發(fā)送。

5、如何判斷主機(jī)序
int main() {
    int x = 0x1020304;
    char* p = (char*)&x;
    if(p[0]==1){
         printf("Big
");
    }
    else{
          printf("Little
");
    }
    return 0;
}
6、Java設(shè)置大小端
public class HelloEndian {

    public static void main(String[] args) {
        ByteBuffer b = ByteBuffer.wrap(new byte[4]);
        b.order(ByteOrder.BIG_ENDIAN);
        b.putInt(0x01020304);
        System.out.println("Big-Endian:    " + Arrays.toString(b.array()));

        b = ByteBuffer.wrap(new byte[4]);
        b.order(ByteOrder.LITTLE_ENDIAN);
        b.putInt(0x01020304);
        System.out.println("Little-Endian: " + Arrays.toString(b.array()));
    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/71540.html

相關(guān)文章

  • PHP中pack、unpack的詳細(xì)用法

    摘要:中有兩個(gè)函數(shù)和,很多在實(shí)際項(xiàng)目中從來沒有使用過,甚至也不知道這兩個(gè)方法是用來干嘛的。比如和分別對(duì)應(yīng)的二進(jìn)制表示為。主機(jī)字節(jié)序表示當(dāng)年機(jī)器的字節(jié)序也就是網(wǎng)絡(luò)字節(jié)序是確定的,而主機(jī)字節(jié)序是依機(jī)器確定的,一般為小端字節(jié)序。 PHP中有兩個(gè)函數(shù)pack和unpack,很多PHPer在實(shí)際項(xiàng)目中從來沒有使用過,甚至也不知道這兩個(gè)方法是用來干嘛的。這篇文章來為大家介紹一下它倆到底是用來干啥的。 p...

    beita 評(píng)論0 收藏0
  • Node閑談之Buffer

    摘要:閑談系列不涉及具體的講解,只會(huì)勾勾畫畫一些自己認(rèn)為比較重要的特性。我們一般認(rèn)為用兩個(gè)字節(jié)位表示,并且完全囊括了字符集。將其轉(zhuǎn)換成進(jìn)制就是只是表示它們是碼。三的讀取和寫入相關(guān)重要的只有能夠讀寫,才能夠顯示其存在的價(jià)值。 原文地址:http://www.cnblogs.com/DeanCh... 在剛接觸Nodejs的時(shí)候,有些概念總讓學(xué)前端的我感到困惑(雖然大學(xué)的時(shí)候也是在搞后端,世界上...

    Godtoy 評(píng)論0 收藏0
  • WebSocket系列之JavaScript中數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)

    摘要:以和為例,說明中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。對(duì)象用來表示通用的固定長(zhǎng)度的原始二進(jìn)制數(shù)據(jù)緩沖區(qū)。中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)對(duì)和有了一個(gè)大概的了解,下面讓我們來看下它是如何進(jìn)行二進(jìn)制數(shù)據(jù)操作的。 概述 本文主要通過對(duì)JavaScript中數(shù)字?jǐn)?shù)據(jù)與二進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換,讓讀者能夠了解在JavaScript中如何對(duì)數(shù)字類型(包括但不限于Number類型)進(jìn)行處理。 二進(jìn)制數(shù)據(jù)在日常...

    MASAILA 評(píng)論0 收藏0
  • 【數(shù)據(jù)類型存儲(chǔ)原理】數(shù)據(jù)的存儲(chǔ) - 深度剖析數(shù)據(jù)在內(nèi)存中的存儲(chǔ)

    摘要:數(shù)據(jù)的存儲(chǔ)前言數(shù)據(jù)類型匯總整型家族浮點(diǎn)型家族自定義類型指針類型。整型家族注在之后的標(biāo)準(zhǔn)規(guī)定,將類型數(shù)據(jù)劃分為整型家族,因?yàn)樽址趦?nèi)存中會(huì)將其轉(zhuǎn)化為碼值進(jìn)行存儲(chǔ)。 ...

    yuanzhanghu 評(píng)論0 收藏0
  • PHP中的pack和unpack函數(shù)

    摘要:鑒于文件讀寫網(wǎng)絡(luò)編程,或者說字節(jié)流處理的重要性,掌握這兩個(gè)函數(shù)是邁向高級(jí)編程的基礎(chǔ)。相比之下字節(jié)處理門庭冷落,相關(guān)函數(shù)寥寥無幾。上述是函數(shù)簡(jiǎn)單的使用場(chǎng)景,接下來分別介紹和函數(shù)。如其名,函數(shù)的工作是將數(shù)據(jù)按照格式打包成字節(jié)數(shù)組。 轉(zhuǎn)載請(qǐng)注明文章出處:https://tlanyan.me/php-pack-a... PHP有兩個(gè)重要的冷門函數(shù):pack和unpack。在網(wǎng)絡(luò)編程,讀寫圖像...

    Lin_R 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<