这个c代码试图做什么

时间:2014-03-14 17:32:10

标签: c

以下c代码试图做什么。我不确定它计算宽度值是什么

(width+31)&~31

谢谢。

3 个答案:

答案 0 :(得分:4)

它向下舍入到32的下一个倍数。它只能起作用,因为32是2的幂。

The bit pattern for  31 is ...000000000011111
The bit pattern for ~31 is ...111111111100000

当你和~31有任何正整数时,你得到32的倍数(五个低位都是零)。

答案 1 :(得分:3)

它将width向上舍入到32的倍数。

答案 2 :(得分:0)

它重置(关闭)宽度的最后5位'这导致宽度%32 = 0,即宽度倍数为32。