`
wsql
  • 浏览: 11777508 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

位运算——判断整数a是否可被2的幂(2、4、8、16……)整除?

 
阅读更多

// 大部分位运算的技巧早在几十年前就被前辈们在有限的计算环境下“榨”出来了。
// “原创”只是表示这篇文章是我所写,并非翻译或转贴,但也绝不是我“首创”。

能被2^N整除(N >= 1),则a的二进制表示中,低N位全为0,因此:

现在的编译器已经足够聪明,上面左边的表达式很可能会被自动优化,所以可能看不出求余与按位与的性能差距。
但能在DEBUG模式下快一点,还是有价值的。(设想正常要跑一分钟的程序,调试时需要10分钟才能运行到你所下的断点,会是多么痛苦……)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics