1. 程式人生 > >大端和小端位元組區別

大端和小端位元組區別

大端:高位元組存放在低地址,低位元組存放在高地址

小端:高位元組存放在高地址,低位元組存在低

不過給我啟發的是,在裘宗燕翻譯的《程式設計實踐》裡,這對術語並沒有翻譯為“大端”和小端,而是“高尾端”“低尾端”,這就好理解了:如果把一個數看成一個字串,比如11223344看成"11223344",末尾是個'\0','11'到'44'個佔用一個儲存單元,那麼它的尾端很顯然是44,前面的高還是低就表示尾端放在高地址還是低地址,它在記憶體中的放法非常直觀,如下圖:

08153946-05d0c7f220ec42da8f854f37c9719947.png

“高/低尾端”比“大/小端”更不容易讓人迷惑。但是根據個人經驗,在市面上的書籍、網路上的各種資料中,很遺憾,前者已經很少見了,多見的是後者。好在這兩對形容詞中,恰好“高”和“大”對應,“低”和“小”對應;既然高尾端對應的是大端,低尾端對應的是小端,那麼當你再見到大端和小端這一對術語,就可以在腦中把它們轉化成高尾端和低尾端,這時憑著之前的理解,甚至不用回憶,想著高低的字面含義就能回想起它們的含義。但是很奇怪的是,同樣是裘宗燕翻譯的《程式設計原本》(Elements of Programming),卻把big-endian翻譯成大尾格式(第一章)。

  理解之後,總結一下,記憶的方法是:

(資料看成字串)大端——高尾端,小端——低尾端

  稍一思索什麼是“高”、什麼是"低","尾端"又是什麼,問題迎刃而解,再不用擔心被“大端”和“小端”迷惑。用這種方式,是時候放棄原先的死記硬背和容易把自己繞進去而發生迷惑的理解了。


相關推薦

大端位元組區別

大端:高位元組存放在低地址,低位元組存放在高地址 小端:高位元組存放在高地址,低位元組存在低 不過給我啟發的是,在裘宗燕翻譯的《程式設計實踐》裡,這對術語並沒有翻譯為“大端”和小端,而是“高尾端”和“低尾端”,這就好理解了:如果把一個數看成一個字串,比如11223344看成

大端區別

一、大小端名稱起源        Endian這個詞來源於Jonathan Swift在1726年寫的諷刺小說"Gulliver's Travels"(《格利佛遊記》)。該小說在描述Gulliver暢遊小人國時碰到了如下的一個場景。有一次因為對水煮蛋該從大的一端(Big-

如何區別大端位元組位元組

網路位元組序,高位高地址,低位低地址,屬於大端形式 主機位元組序,高位低地址,低位高地址,屬於小端形式 注:在沒有規定位元組序的情況下,powerpc架構預設為大端位元組序,arm架構預設為小端位元組序。 例:int *p=0x12345678H int a=0x11223344 p=&am

網路通訊之 位元組序轉換原理與網路位元組序、大端模式

     原因如下:網路協議規定接收到得第一個位元組是高位元組,存放到低地址,所以傳送時會首先去低地址取資料的高位元組。小端模式的多位元組資料在存放時,低地址存放的是低位元組,而被髮送方網路協議函式傳送時會首先去低地址取資料(想要取高位元組,真正取得是低位元組),接收方網路協議函式接收時會將接收到的第一個位元

大端位元組位元組序問題(big-endian & little-endian)

        所謂的大端模式(Big-endian),是指資料的低位(就是權值較小的後面那幾位)儲存在記憶體的高地址中,而資料的高位,儲存在記憶體的低地址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理:地址由小向大增加,而資料從高位往低位放;         所謂的小端模式(Little-endian

大端位元組位元組

對錶示一個物件的位元組序列排序,有兩個通用的規則。有些機器選擇在儲存器中按照從最低有效位元組到最高有效位元組的順序儲存物件,而另一些機器按照從最高有效位元組到最低有效位元組的順序儲存。前一種規則——

關於大端位元組位元組

現在,大多數的計算機都是按位元組編址的(除了按位元組編址還有按字編址和按位編址)。所以這裡只討論按位元組編址的計算機。 大端位元組序:資料的高位元組儲存在低地址。 小端位元組序:資料的高位元組儲存在高地址。 計算機中的記憶體可以看成是線性的(這裡只討論按位元組編址),

大端區別

問題 大端機和小端機的區別。 深入理解計算機系統裡面有如下的描述: 對於跨越多位元組的物件,我們必須建立兩個原則,這個物件的地址是什麼以及儲存器中如何排列這些位元組。對於第一個問題,幾乎在所有的機器上面,多位元組物件都被儲存為連續的位元組序列,因此物

大端區別-linux

Little-Endian:低位位元組排放在記憶體的低地址端,高位位元組排放在記憶體的高地址端。 Big-Endian:高位位元組排放在記憶體的低地址端,低位位元組排放在記憶體的高地址端。 記憶方法:

大端位元組位元組序通俗易懂講解

大端(儲存模式),是指資料的地位儲存在記憶體的高地址中,而資料的高位儲存在記憶體的低地址中。 小端(儲存模式),是指資料的地位儲存在記憶體的低地址中,而資料的高位儲存在記憶體的高地址中。 小端如下圖

大端(big endian little endian)

讀寫 pue 處理器 bsp 網絡 做的 tdi har power 一、大端和小端的問題 對於整型、長整型等數據類型,Big endian 認為第一個字節是最高位字節(按照從低地址到高地址的順序存放數據的高位字節到低位字節);而 Little endian 則相反,它認為

大端(Big endian and Little endian)

tro big ttl class erp 順序 通過 網絡 rpc 1.大端和小端的問題 ? 對於整型、長整型等數據類型,Big endian 人為第一個字節是最高位字節(按照從低地址到高地址的順序存放數據的高位字節到低位字節),而 Little endian 則相反,它

010 大端

ret out 模式 大端模式 小端 str char* main 大端 所謂的大端模式,是指數據的低位保存在內存的高地址中,而數據的高位,保存在內存的低地址中; 所謂的小端模式,是指數據的低位保存在內存的低地址中,而數據的高位保存在內存的高地址中。 #include "s

【C++】大端的理解

我的理解: 記憶體是以位元組為單位的,一個位元組是8位,也就是2位的16進位制,所以首先將資料轉成16進位制,比如下面例子中的0x12345678,就表示了4個位元組的資料。這裡要注意一點,如果將資料改成0x10,那麼這個還是4個位元組的資料,主要是位元組空間是由int所決定的,因此就

區分大端

如何區分大端和小端? 小端: FF FE開頭                低位元組在前 ,高位元組在後      

輕鬆記住大端的含義(附對大端的解釋)

原文地址:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html   或許你曾經仔細瞭解過什麼是大端小端,也動手編寫了測試手頭上的機器上是大端還是小端的程式,甚至還編寫了大端小端轉換程式;但

寫一個C程式判斷系統是32或64位、大端位元組

一、判斷系統是32位或64位32位處理器一次只能處理32位,也就是4個位元組的資料,虛擬地址空間的最大值是4G。64位處理器一次能處理64位,也就是8個位元組的資料,虛擬地址空間的最大值是16T。32位

大端、hton*ntoh*

1、TCP/IP網路傳輸使用大端的位元組序2、大端小端問題只有在表示的資料型別大於一個位元組的時候存在,對於char、byte型別的資料不需要考慮此問題3、目前大部分CPU都是小端4、如果網路兩端位元組序相同,可以不需要考慮位元組序,接收後直接按照資料型別強轉;如果兩端位元組

大端

基本概念 我們可以把計算機的記憶體抽像成一個大的陣列,在這個陣列中,包含了一個個的位元組元素。對於大小端的討論,我們可以認為記憶體的最小單元即是一個位元組(byte)。對於每個位元組,我們可以使用一個“索引”來標識,這個索引亦即我們平常所說的記憶體的地址。

【轉】輕鬆記住大端的含義(附對大端的解釋)

 轉自:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html        或許你曾經仔細瞭解過什麼是大端小端,也動手編寫了測試手頭上的機器上是大端還是小端的程式,甚至還編寫了大端小端轉換程式;