字節對齊算法

在開發中經常要用到字節對齊的操作,這邊介紹了一種簡單實現:

int ALIGN(int value, int align){
    // y must be a power of 2.
    return (value + align - 1) & ~(align - 1);
}

    

 一般的字節對齊的大小都爲2的整數倍,所以能夠被整除的地址的後幾位一定是0,如: 8字節對齊,能夠被整除的數的二進制最後3位一定爲0)

1.value+(align-1)會導致進位。

2.&~(align-1)去除後面多餘的。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章