gpt4 book ai didi

c++ - round_down 宏需要解释

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:13 26 4
gpt4 key购买 nike

#define ROUND_DOWN(x, s) ((x) & ~((s)-1))

我不太明白 ((x) & ~((s)-1)) 部分。非常感谢您的解释。

最佳答案

因此,它的一个可能用法是:

ROUND_DOWN(152, 128);

让我们看看会发生什么:

~(128 - 1) == ~(127)
== ~(0x7F)
== 0xFFFFFF80

因此,看起来我们正在屏蔽掉数字的低位。

ROUND_DOWN(152, 128) == (152 & 0xFFFFFF80) == 128
ROUND_DOWN(300, 128) == (300 & 0xFFFFFF80) == 256

另外,s 也必须是 2 的幂。否则这个宏在数学上没有多大意义。

关于c++ - round_down 宏需要解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com