每個程序員都應(yīng)當(dāng)知道的“大小端”

概述

機(jī)器是分大小端的羽历,這對我們編程有什么影響呢焊虏?什么又是大小端呢?也許我們很多時候都不清楚秕磷,但仍然可以很好地使用電腦诵闭,或者編寫代碼。但我認(rèn)為《圣經(jīng)》里有句話說得很好澎嚣,“你應(yīng)該了解真相疏尿,真相會使你自由”。
所以這次易桃,我要揭開“字節(jié)端”的面紗褥琐,共享科學(xué)之美。

小故事

Jonathan swift在1726年寫的諷刺小說《格列佛游記》颈抚,小人國的內(nèi)戰(zhàn)就源于吃水煮雞蛋時究竟是從大頭(Big-Endian)敲開還是從小頭(Little-Endian)敲開踩衩,由此曾發(fā)生6次叛亂,其中一個皇帝送了命贩汉,另一個丟了皇位驱富。
這就是Endian的由來。

大小端應(yīng)用領(lǐng)域

各個體系的計(jì)算機(jī)通常采用的字節(jié)存儲機(jī)制主要有兩種:大端(Big-Endian)和小端(Little-Endian)匹舞。

Little-Endian主要用于現(xiàn)在的pc機(jī)上褐鸥,比如Intel的x86系列;Big-Endian主要指PowerPC系列處理器赐稽。

另外叫榕,目前的TCP/IP網(wǎng)絡(luò)及Java虛擬機(jī)的字節(jié)序都是Big-Endian的,這意味著如果通過網(wǎng)絡(luò)傳輸0x12345678這個整型變量姊舵,首先被發(fā)送的應(yīng)該是0x12晰绎,接著0x34,0x56,0x78。所以我們的程序在處理網(wǎng)絡(luò)流的時候括丁,必須注意字節(jié)序的問題荞下。

大小端原理

MSB:Most Significant Bit/Byte,譯為最重要的位或最重要的字節(jié)。
用來表明在一個bit序列(1byte是8個bit組成的序列)或一個byte序列(1word是2個byte組成的序列)中對整個序列取值影響最大的那個bit/byte尖昏。
LSB:Least Significant Bit/Byte仰税,譯為最不重要的位或最不重要的字節(jié)。
用來表明在一個bit序列(1byte是8個bit組成的序列)或一個byte序列(1word是2個byte組成的序列)中對整個序列取值影響最小的那個bit/byte抽诉。

舉個栗子

一個十六進(jìn)制的整數(shù):0x12345678
0x12就是MSB陨簇,0x78就是LSB。
而對于0x78這個字節(jié)迹淌,它的二進(jìn)制值0x01111000河绽,那么最左邊的0就是MSB,最右邊0就是LSB巍沙。

Big-Endian

Big-Endian其實(shí)就是規(guī)定MSB在存儲時放在低地址葵姥,在傳輸時MSB放在流的開始;
LSB存儲時放在高地址句携,在傳輸時放在流的末尾榔幸。

Little-Endian

Little-Endian其實(shí)就是規(guī)定MSB在存儲時放在高地址,在傳輸時MSB放在流的末尾矮嫉;
LSB存儲時放在低地址削咆,在傳輸時放在流的開始。

舉個栗子

0x12345678
Big-Endian
地址0:0x12蠢笋;地址1:0x34拨齐;地址2:0x56;地址3:0x78
Little-Endian
地址0:0x78昨寞;地址1:0x56瞻惋;地址2:0x34;地址3:0x12

總結(jié)

其實(shí)大小端很簡單只需了解幾點(diǎn):

  1. 大小端是由硬件決定的援岩,小端主要是x86處理器歼狼,大端主要是PowerPC;
  2. 大小端是一種字節(jié)存儲機(jī)制享怀;
  3. 大端是最重要的字節(jié)存儲在低地址羽峰;
  4. 小端是最重要的字節(jié)存儲在高地址。

程序員筆記專題:
http://www.reibang.com/c/ae2d7c7fc623

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末添瓷,一起剝皮案震驚了整個濱河市梅屉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鳞贷,老刑警劉巖坯汤,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搀愧,居然都是意外死亡惰聂,警方通過查閱死者的電腦和手機(jī)凿滤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庶近,“玉大人,你說我怎么就攤上這事眷蚓”侵郑” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵沙热,是天一觀的道長叉钥。 經(jīng)常有香客問我,道長篙贸,這世上最難降的妖魔是什么投队? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮爵川,結(jié)果婚禮上敷鸦,老公的妹妹穿的比我還像新娘。我一直安慰自己寝贡,他們只是感情好扒披,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著圃泡,像睡著了一般碟案。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颇蜡,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天价说,我揣著相機(jī)與錄音,去河邊找鬼风秤。 笑死鳖目,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唁情。 我是一名探鬼主播疑苔,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼甸鸟!你這毒婦竟也來了惦费?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤抢韭,失蹤者是張志新(化名)和其女友劉穎薪贫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刻恭,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞧省,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年扯夭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞍匾。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡交洗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橡淑,到底是詐尸還是另有隱情构拳,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布梁棠,位于F島的核電站置森,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏符糊。R本人自食惡果不足惜凫海,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望男娄。 院中可真熱鬧行贪,春花似錦、人聲如沸沪伙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽围橡。三九已至暖混,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翁授,已是汗流浹背拣播。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留收擦,地道東北人贮配。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像塞赂,于是被迫代替她去往敵國和親泪勒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容