現在,大多數的計算機都是按位元組編址的(除了按位元組編址還有按字編址和按位編址)。所以這裡只討論按位元組編址的計算機。
計算機中的記憶體可以看成是線性的(這裡只討論按位元組編址), 如下圖:
從上圖可以看出,乙個int型是16位也就是兩個位元組的長度,一共可以表示2^16byte(也就是64kb)的記憶體。
現在我們來看看乙個int型分別在大端和小端是怎麼儲存的。
舉個例子:
我們現在有乙個整數是258。用16進製表示是0x0102, 然後我們把這個整數拆分成兩個位元組,第乙個位元組為0x01, 第二個位元組為0x02.
對應的二進位制分別是:0000 0001 和 0000 0010。
如果在乙個使用大端位元組序的電腦上,這個整數會被這樣存放:
這跟我們平時上課教的使用的位元組序是一樣的。都是高位在低位址。
仔細看低位址的內容程式設計了int型的低位元組部分,也就是0000 0010。
以上就是大端和小端計算機在儲存資料方面的區別。
大端位元組序和小端位元組序
簡單介紹 位元組序是由cpu和os對多位元組變數的記憶體儲存順序不同而產生的 小端位元組序 在表示變數的記憶體位址的起始位址存放低位元組,高位元組順序存放 大端位元組序 在表示變數的記憶體位址的起始位址存放高位元組,低位元組順序存放,例如 變數的值0xabcd uint32 t htonl 主機位元...
大端位元組序和小端位元組序
title 大端位元組序和小端位元組序 格列佛遊記 中記載了兩個征戰的強國,你不會想到的是,他們打仗竟然和剝雞蛋的姿勢有關。很多人認為,剝雞蛋時應該打破雞蛋較大的一端,這群人被稱作 大端 big endian 派 可是當今皇帝的祖父小時候吃雞蛋的時候碰巧將乙個手指弄破了。所以,他的父親 當時的皇帝 ...
大端位元組序和小端位元組序
計算機硬體有兩種儲存資料的方式 大端位元組序 big endian 和小端位元組序 little endian 舉例來說,數值0x2211使用兩個位元組 一位元組是8bit 儲存 高位位元組是0x22,低位位元組是0x11。大端位元組序 低位位元組在高位址,高位位元組低位址上。這是人類讀寫數值的方法...