參考博文:參考1 、參考2、參考3
在記憶體管理中經常使用位元組對齊來管理分配的記憶體。
1、原理…
2、演算法
2.1
unsigned
intcalc_align
(unsigned
int n,
unsigned align)
2.2 更好的演算法
unsigned
intcalc_align
(unsigned
int n,
unsigned align)
3、演算法說明
(1) (align - 1):表示對齊所需的對齊位,如:
(2) (n + align - 1):表示n補齊對齊所需資料。
(3) &(~(align - 1)):表示去除由於補齊造成的多餘資料。
(4) (n + align - 1) & (~(align - 1)):表示對齊後的資料。
測試8位元組對齊
對十六進製制和按位操作,總是糊塗,所以實際測試下 我的理解,不一定全部正確 32位的系統上,都以32位系統為例 乙個int型是4個位元組,所以0x3是 0x0003,四個位元組,其中3代表乙個位元組 8個二進位制位 00000011,0就是00000000了。乙個指標也是4個位元組,這個程式裡頭列印...
8位位元組對齊演算法
參考文章 8bit對齊演算法 void testalign 1byte 1位元組對齊 unsigned int align8bit unsigned int n 2byte 2位元組對齊 unsigned int align16bit unsigned int n 4byte 4位元組對齊 unsi...
python結構體位元組對齊 八字節對齊
位元組對齊意義 在進行c c 開發時,特別是要求跨平台或者網路通訊的時候,都會要求進行位元組對齊,那為什麼需要對齊,如果不對齊會有什麼問題呢。1 儲存方式 現代計算機處理器對儲存的讀取都是按照特定大小位元組去讀寫 稱其為乙個儲存單元 比如乙個變數char,它的長度為1,但是在儲存器中它占用的空間是乙...