位元組對齊 8位元組對齊

2021-10-05 06:20:35 字數 537 閱讀 7637

參考博文:參考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,但是在儲存器中它占用的空間是乙...