关于lowbit

我们知道,任何一个正整数都可以被表示成一个二进制数。如:

\[\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) \]

猜你喜欢

转载自www.cnblogs.com/wsy107316/p/12365482.html