n&(n-1)位运算的妙用

作oj遇到一道题,求二进制中1的个数。发现有大佬用来(n&n-1)。以为很神奇。有空下来细想。确实是这么个道理。记录一下本身的分析过程ios 1、n-1发生了什么web ①、二进制数n,n-1后,若是最后一位是0,将向前一位借2,2-1=1。最后一位为1。若是前一位为0,将继续向前一位借2,加上自己少掉的1.则变为1。一直遇到1。减为0.svg 因此 二进制 xxxx10000-1 = xxxx0
相关文章
相关标签/搜索