gpt4 book ai didi

c++ - 按位运算n&(n-1)有什么作用?

转载 作者:太空狗 更新时间:2023-10-29 19:56:28 24 4
gpt4 key购买 nike

我试图理解一些代码,我在其中找到了声明:

n=n&(n-1);

这是做什么的?

最佳答案

该等式将 n 中的最低有效非零位清零。

如果我们假设 8 位,那么这里是信封背面的解释。设 n 为 70。

n       = 01000110
n-1 = 01000101
--------
n&(n-1) = 01000100

因此,如果结果为 0,则表示 n 中原本只设置了一位,表示它是 2 的幂(或者是 0 到与)。

如果在循环中迭代应用直到n变为0,则迭代次数计算原始在n中设置的位数。但是,大多数处理器都有内置操作来为您执行此操作。


如果您通常对 bit-hacks 感兴趣,则在该站点搜索“bithacks”会产生很多结果。

关于c++ - 按位运算n&(n-1)有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47779830/

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