資料在 記憶體 中的 儲存順序 都是
從 低位址 向 高位址 儲存的 (首位址 指 編號較少的 位址編號)
例 儲存 4個char (a1, a2, a3, a4),則 第乙個到 第四個 所佔的 儲存空間位址 依次為 0x101, 0x102, 0x103, 0x104
大端法,小端法 指的是 多位元組的資料(int,float)在記憶體中 所佔空間的 位址順序
如 x (int)位於 0x100 (指
首位址的編號 )處,其值 0x01234567 所在 位址空間為 0x100~0x103 的位元組
大端法0x100 0x101 0x1020x103 (
高位 在 首位址處,即編號較少的位址空間) (ibm,sun 大型機 大部分)
01 23 4567
小端法 67452301 (低位 在 首位址處,即編號較少的位址空間) (intel 等pc機 大部分)
測試**
#include typedef unsigned char *byte_pointer;
void show_byte(byte_pointer str, int len)
void show_int(int num)
int main()
結果:good dayend
a end
ba end
b end
為了便於觀察字元的記憶體分布,新增了"end"
show_int(97);
由小端法知 97在4位元組在記憶體的分布 從低位到高位 為 97 0 0 0
結果 a end 可看出,字串列印從 指標所指位址 (變數的低位位址為起始位址)開始列印
同理show_int(24930); 24930 對應 4位元組十六進製制 0x00006162 0x61 (97)為'a'的 ansic碼, 0x62(98)為'b'的 ansic碼
其內容分布 從低位到高位為 98 97 0 0
所以結果為 ba end
資料的訪問 從位址空間的低位址開始,向高位址訪問
大端法與小端法
一 什麼是位元組序 位元組序,顧名思義位元組的順序,再多說兩句就是大於乙個位元組型別的資料在記憶體中的存放順序 乙個位元組的資料當然就無需談順序的問題了 指的是記憶體的高 低位址,計算機在記憶體中存放資料的順序都是從低位址到高位址 高 低位元組 有些文章中稱低位位元組為最低有效位,高位位元組為最高有...
小端法 大端法
小端法little endian 諸如intel的機器就是採用這種規則 高位址存高位資料 大端法big endian 諸如ibm,motoral,sun採用此規則 低位址存高位資料 如需儲存oxeeaabbcc此數 如採用大端法儲存如下 address low high ee aa bb cc 如採...
小端法與大端法及驗證機器小端還是大端的驗證程式
首先請看定義 a little endian就是低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端。b big endian就是高位位元組排放在記憶體的低位址端,低位位元組排放在記憶體的高位址端。舉例說明 假設變數x型別為int,位於位址0x100處,x的十六進製制表示形式為0x01...