繁体   English   中英

这个C代码试图做什么

[英]What does this c code trying to do

以下c代码试图做什么? 我不确定它是如何计算width的值

(width+31)&~31

谢谢。

它四舍五入到32的下一个倍数。它只能工作,因为32是2的幂。

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

当您用任意正整数与〜31时,您将获得32的倍数(五个低阶位均为零)。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM