0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是字節(jié)序?字節(jié)序重要嗎?

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Colin Walls ? 2022-06-29 15:20 ? 次閱讀

那是 1981 年(是的——將近 40 年前!),我們正在構(gòu)建一個(gè)系統(tǒng),其中包含一個(gè) DEC PDP-11 小型計(jì)算機(jī),該小型計(jì)算機(jī)通過(guò)共享內(nèi)存與德克薩斯 TMS990 微處理器接口。這些都是 16 位處理器,所以我們將數(shù)據(jù)作為字傳遞。但是發(fā)生了一些奇怪的事情:一個(gè) CPU 會(huì)將一個(gè)值寫(xiě)入共享內(nèi)存的一個(gè)字中,但是當(dāng)另一個(gè) CPU 讀出它時(shí),字節(jié)被交換了。解決這個(gè)問(wèn)題很簡(jiǎn)單:只需在一側(cè)編寫(xiě)一個(gè)簡(jiǎn)單的訪(fǎng)問(wèn)例程來(lái)交換字節(jié)并確保它始終用于訪(fǎng)問(wèn)共享內(nèi)存。直到后來(lái)才知道為什么會(huì)出現(xiàn)這個(gè)問(wèn)題。

在幾乎所有現(xiàn)代嵌入式系統(tǒng)中,內(nèi)存都是按字節(jié)組織的。但是,CPU 也可以將數(shù)據(jù)處理為 16 位或 32 位字。在這種情況下,需要決定如何將字中的字節(jié)存儲(chǔ)在內(nèi)存中。有兩個(gè)明顯的選項(xiàng)和許多其他變體。描述此字節(jié)順序的屬性稱(chēng)為“字節(jié)順序”(或有時(shí)稱(chēng)為“字節(jié)順序”)。

兩種常見(jiàn)的字節(jié)序形式是:最低有效字節(jié)存儲(chǔ)在最低地址(“l(fā)ittle-endian”)和最高有效字節(jié)存儲(chǔ)在最低地址(“big-endian”)。字節(jié)順序還有其他變化,甚至還有存儲(chǔ)位的可能性。

廣義上講,使用的字節(jié)序是由 CPU 決定的。由于有多種選擇,因此不同的半導(dǎo)體供應(yīng)商為其 CPU 選擇不同的字節(jié)序也就不足為奇了。英特爾 CPU 傳統(tǒng)上是小端的。飛思卡爾傾向于支持大端。大多數(shù)現(xiàn)代 CPU 的字節(jié)序可以在軟件中交換。

嵌入式軟件工程師的角度來(lái)看,問(wèn)題是“字節(jié)序重要嗎?” 并且,“如果有,多少錢(qián)?”

當(dāng)軟件開(kāi)發(fā)人員需要考慮字節(jié)順序時(shí),大致有兩種情況:

通過(guò)通信鏈路或網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)

在軟件中以多種表示形式處理的數(shù)據(jù)

前一種情況非常簡(jiǎn)單——只需遵循或定義協(xié)議即可。后者更棘手,需要一些思考。

考慮這段代碼:

unsigned int n = 0x0a0b0c0d;

unsigned char c, d, *p;

c = (unsigned char) n;

p = (unsigned char *) &n;

d = *p;

c和d最后會(huì)包含什么值?無(wú)論字節(jié)順序如何,c 都應(yīng)該包含值 0x0 d。但是,d的值將取決于字節(jié)序。在小端系統(tǒng)上d 將包含 0x0 d;在 big-endian 上,它將具有值0x0a。如果要在n 和unsigned char a之間進(jìn)行聯(lián)合,則會(huì)觀(guān)察到同樣的效果。

那么,這有關(guān)系嗎?這么多年前,這對(duì)我很重要!但是,請(qǐng)注意,大多數(shù)代碼可能會(huì)獨(dú)立于字節(jié)順序而編寫(xiě),我認(rèn)為幾乎所有編寫(xiě)良好的代碼都是這樣的。但是,如果您確實(shí)像我需要的那樣構(gòu)建了字節(jié)順序依賴(lài)項(xiàng),那么良好的文檔和注釋是必不可少的。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19103

    瀏覽量

    228825
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10807

    瀏覽量

    210852
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    字節(jié)跳動(dòng)自研視頻生成模型Seaweed開(kāi)放

    近日,字節(jié)跳動(dòng)旗下的AI內(nèi)容平臺(tái)即夢(mèng)AI傳來(lái)新消息,宣布自研的視頻生成模型Seaweed即日起正式面向平臺(tái)用戶(hù)開(kāi)放使用。這一舉措標(biāo)志著字節(jié)跳動(dòng)在AI視頻領(lǐng)域邁出了堅(jiān)實(shí)的一步。
    的頭像 發(fā)表于 11-11 14:31 ?59次閱讀

    字節(jié)跳動(dòng)計(jì)劃在歐洲設(shè)立AI研發(fā)中心

    字節(jié)跳動(dòng)正積極布局歐洲市場(chǎng),計(jì)劃在該地區(qū)設(shè)立AI研發(fā)中心。據(jù)知情人士透露,字節(jié)跳動(dòng)已開(kāi)始在歐洲尋找LLM(Large Language Model,大語(yǔ)言模型)和AI領(lǐng)域的技術(shù)大牛,積極招攬頂尖人才
    的頭像 發(fā)表于 10-28 11:04 ?407次閱讀

    字節(jié)跳動(dòng)否認(rèn)與臺(tái)積電合作AI芯片

    近日,關(guān)于字節(jié)跳動(dòng)計(jì)劃與臺(tái)積電攜手開(kāi)發(fā)AI芯片的報(bào)道引發(fā)關(guān)注。對(duì)此,字節(jié)跳動(dòng)迅速作出回應(yīng),明確表示該報(bào)道不實(shí)。字節(jié)方面透露,公司確實(shí)在芯片領(lǐng)域有所探索,但目前仍處于非常初級(jí)的階段,且這些探索主要聚焦于如何通過(guò)芯片技術(shù)優(yōu)化推薦系統(tǒng)
    的頭像 發(fā)表于 09-19 16:04 ?204次閱讀

    字節(jié)跳動(dòng)回應(yīng)要進(jìn)軍手機(jī)市場(chǎng)

    近日,關(guān)于字節(jié)跳動(dòng)秘密啟動(dòng)AI手機(jī)研發(fā)項(xiàng)目的傳聞引起了廣泛關(guān)注。然而,字節(jié)跳動(dòng)相關(guān)人士在12日對(duì)此進(jìn)行了澄清,表示這一消息并不屬實(shí)。
    的頭像 發(fā)表于 06-13 11:48 ?691次閱讀

    字節(jié)跳動(dòng)否認(rèn)AI手機(jī)研發(fā)項(xiàng)目

    近日,有市場(chǎng)傳聞稱(chēng)字節(jié)跳動(dòng)已在兩個(gè)月前秘密啟動(dòng)了AI手機(jī)研發(fā)項(xiàng)目,引發(fā)業(yè)界廣泛關(guān)注。然而,字節(jié)跳動(dòng)相關(guān)人士迅速對(duì)此作出回應(yīng),表示這些消息并不屬實(shí)。
    的頭像 發(fā)表于 06-12 15:54 ?533次閱讀

    字節(jié)跳動(dòng):未出售TikTok,將持續(xù)創(chuàng)新投資

    4月25日晚間,字節(jié)跳動(dòng)在其官方頭條號(hào)上發(fā)表聲明,否認(rèn)外媒有關(guān)其尋求出售TikTok大部分股權(quán)的不實(shí)傳聞,表示并無(wú)此類(lèi)打算。據(jù)悉,此前有媒體報(bào)道稱(chēng),字節(jié)跳動(dòng)能考慮將TikTok美國(guó)業(yè)務(wù)的多數(shù)股權(quán)售予沃爾瑪。
    的頭像 發(fā)表于 04-26 10:44 ?506次閱讀

    OpenHarmony語(yǔ)言基礎(chǔ)類(lèi)庫(kù)【@ohos.buffer (Buffer)】

    Buffer對(duì)象用于表示固定長(zhǎng)度的字節(jié)序列,是專(zhuān)門(mén)存放二進(jìn)制數(shù)據(jù)的緩存區(qū)。
    的頭像 發(fā)表于 04-23 17:34 ?807次閱讀
    OpenHarmony語(yǔ)言基礎(chǔ)類(lèi)庫(kù)【@ohos.buffer (Buffer)】

    Linux網(wǎng)絡(luò)編程

    :面向報(bào)文,不可靠,(類(lèi)似于雙方發(fā)短信),適用于數(shù)據(jù)量大且不需要準(zhǔn)確傳輸 進(jìn)程間通信是基于Linux內(nèi)核的,不適用于兩臺(tái)手機(jī)之間的通信。 ? 字節(jié)序: 小端:將低序字節(jié)存儲(chǔ)在起始地址 大端:將高序字節(jié)存儲(chǔ)在起始地址 電腦是小端
    的頭像 發(fā)表于 03-26 10:58 ?286次閱讀
    Linux網(wǎng)絡(luò)編程

    字節(jié)跳動(dòng)開(kāi)啟新一輪期權(quán)回購(gòu)

    字節(jié)跳動(dòng)最近進(jìn)行了新的期權(quán)回購(gòu),這次回購(gòu)的價(jià)格對(duì)于現(xiàn)任員工和離職員工有所區(qū)別。據(jù)消息透露,現(xiàn)任員工的回購(gòu)價(jià)格為170美元/股,而離職員工的回購(gòu)價(jià)格則為145美元/股。這種差別待遇引發(fā)了外界的關(guān)注和討論,但是字節(jié)跳動(dòng)方面目前尚未對(duì)此消息做出回應(yīng)。
    的頭像 發(fā)表于 03-07 10:04 ?629次閱讀

    字節(jié)跳動(dòng)被曝正秘密研發(fā)多個(gè)AI產(chǎn)品

    據(jù)多位知情人士透露,科技巨頭字節(jié)跳動(dòng)正在人工智能(AI)大模型領(lǐng)域秘密研發(fā)多個(gè)創(chuàng)新產(chǎn)品。其中,多模態(tài)數(shù)字人產(chǎn)品備受矚目,該產(chǎn)品將結(jié)合先進(jìn)的AI技術(shù)與虛擬形象,為用戶(hù)提供全新的交互體驗(yàn)。此外,字節(jié)跳動(dòng)還在研發(fā)AI生圖、AI生視頻產(chǎn)品,這標(biāo)志著公司在AI內(nèi)容生成領(lǐng)域邁出了
    的頭像 發(fā)表于 03-05 11:22 ?873次閱讀

    字節(jié)跳動(dòng)「突襲」交換機(jī)!

    因?yàn)?b class='flag-5'>字節(jié)跳動(dòng)自研交換機(jī),早在2019年,就開(kāi)始悄悄布局了。
    的頭像 發(fā)表于 02-26 15:34 ?1295次閱讀
    <b class='flag-5'>字節(jié)</b>跳動(dòng)「突襲」交換機(jī)!

    GD32 MCU的選項(xiàng)字節(jié)是什么?

    GD32 MCU的選項(xiàng)字節(jié)是什么,有什么功能呢?選項(xiàng)字節(jié)被誤篡改如何回復(fù)?
    的頭像 發(fā)表于 01-17 09:42 ?1199次閱讀
    GD32 MCU的選項(xiàng)<b class='flag-5'>字節(jié)</b>是什么?

    字節(jié)流和字符流有什么區(qū)別?看完就知道!

    字節(jié)流和字符流有什么區(qū)別?看完就知道! 字節(jié)流和字符流是Java I/O系統(tǒng)中的兩個(gè)重要概念,用于處理輸入和輸出的數(shù)據(jù)。 首先,字節(jié)流是以字節(jié)
    的頭像 發(fā)表于 12-09 14:57 ?1370次閱讀

    淺談數(shù)字系統(tǒng)通信協(xié)議的字節(jié)序和位有效性

     在計(jì)算中,最小的數(shù)字單位通常是字節(jié)(8位)。從技術(shù)上來(lái)說(shuō),最小的單位是位(1或0,真或假),但就表示我們通常所說(shuō)的數(shù)字而言,字節(jié)是最小的構(gòu)件。更大的數(shù)字是通過(guò)使用多個(gè)字節(jié)創(chuàng)建的,通信協(xié)議通常使用
    發(fā)表于 11-27 15:57 ?427次閱讀
    淺談數(shù)字系統(tǒng)通信協(xié)議的<b class='flag-5'>字節(jié)序</b>和位有效性

    BGP高級(jí)特性——4字節(jié)AS號(hào)

    相比于2字節(jié)AS號(hào),范圍更大。由1~65535擴(kuò)展到1~4294967295
    的頭像 發(fā)表于 11-17 09:39 ?1234次閱讀
    BGP高級(jí)特性——4<b class='flag-5'>字節(jié)</b>AS號(hào)