無意間看到關於位元組序型別的知識。看了幾遍沒看懂,仔細查閱才理解,現寫下讓自己最能理解的通俗解釋。
對於某個擁有多個位元組的資料,資料中的這些位元組在記憶體中排列順序有兩個規則:即
littleendian(小端法
)和bigendian(大端法
)。這也就是位元組序的兩個型別。
位元組序:(多位元組型別資料的)多個位元組在記憶體中的儲存順序
兩個讓我最開始很迷糊的概念開始了。
1.小端法:低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端
2.大端法:高位位元組排放在記憶體的低位址端,低位位元組排放在記憶體的高位址端
其實之所以迷糊是因為我沒有理解
低/高位位元組
和記憶體的低
/高位址端
的概念。
這兩個概念中的高低順序在任何時候都是固定的(即左高右低,**於
2的低次冪和高次冪)
如int型別的長度為
4個位元組:
此時再來理解這兩個概念:
小端法:即從最低有效位元組到最高有效位元組逐字節
開始在記憶體低端位址向記憶體高階位址方向開始儲存。
大端法:即從最高有效位元組到最低有效位元組逐字節
開始在記憶體低端位址向記憶體高階位址方向開始儲存。
如:乙個型別為
int的
16進製制變數
x=0x01234567
(其二進位制表示為
0000 0001 0010 0011 0100 0101 0110 0110)
其在記憶體中的儲存方式依照以上兩種位元組序型別即為
(假設在記憶體中儲存起始位址為
0x100,每個位址增量為
1):大端法:
小端法:
上圖效果同下圖:
大端法:
兩種型別的員工
假如你是村莊的工人,負責為村落供水,那你對村民來說很有價值。這裡有兩種型別的工人 型別1 抓起一兩個空桶,接著去甘泉湖打滿水,返回村莊,20號人因此歡喜。在回來的路上,工人必須喝一部分水,並且一旦返回,他得帶點水回家。型別2 工人沒有考慮自身能得到多少水。他也沒有拿桶去打水,相反,他拿了一把鐵鍬和乙...
兩種型別的probe request
現象 如果某ap的ssid是隱藏的,那麼通常手機傳送的普通的probe request包是無法獲取到隱藏的ssid,必須在probe request包中指定ssid才可以掃瞄到隱藏的ssid。根據ssid的長度劃分,probe request幀應該可以分為兩類 1 ssid長度為0,probe不包含...
位元組序的理解
編者 李國帥 由於不同的cpu或者作業系統的主機序不一樣,導致在讀寫檔案或者檔案傳送的時候,使用的規則不一樣。多位元組資料型別在不同的cpu上可能讀寫方式不同。同時不同編譯器對bitfield的處理方式也可能不一樣。所以資料結構中的int型和short型變數需要在網路的兩頭先變成相同的格式傳送,接收...