32 对齐算法

/**************************************************************************
 *                          32 对齐算法
 * 说明:
 *     这是在QQ群里看到有人问这个问题,于是思考了一下,并回答了这个问题。
 *  
 *                                        2016-4-15 深圳 南山平山村 曾剑锋
 *************************************************************************/


一、32 对齐算法:
    #define ALIGNED32(x)    ((x) & ~0x1F)
    unsigned int screen_size = ALIGNED32(1280+31) * 800 * 24;

二、提问:
    为什么屏幕宽度1280要+31,再位与~0x1F?

三、解释:
    1. 如果屏幕宽度(或者说高)正好是32的倍数,加不加31效果一样;
    2. 而如果不是32的倍数,又要保证32对齐,就要增加对应的空间来满足32对齐。
    3. 相当于对1280/32,如果没有余数,没必要+31,如果有余数,那么+31,就能保证后面的余数的空间有效了。
原文地址:https://www.cnblogs.com/zengjfgit/p/5394344.html