我们知道,任何一个正整数都可以被表示成一个二进制数。如:
\[\left ( 8 \right )_{10} = \left ( 1000 \right )_{2}\]
那么定义一个函数 \[f=lowbit(x)\]
代表x的二进制表达式中最低位的1所对应的值
比如:
\( lowbit(\left ( 8 \right )_{10})=lowbit\left ( \left ( 1000 \right ) _{2}\right) = 8 \)
\( lowbit(\left ( 6 \right )_{10})=lowbit\left ( \left ( 110 \right ) _{2}\right) = 2 \)
\(f=lowbit(x)\) = 2^k,(k是x化为二进制后最右边有几个连续的零)e.g :\(lowbit(6)\) = 2^1 = 2;
实现方式:
\[f=lowbit(x) = x&(-x) \]