6797: 位操作 —— lowbit
[Creator : ]
Description
给一个整数 $x$,求该整数整数x的二进制的最后一位 $1$ 及其后面 $0$ 构成的数。
以 $12$ 为例,$(12)_{10} = (1100)_{2},\ (-12)_{10} = (0011)_{2} + (1)_{2} = (0100)_{2}$
也就是说要求出 $x$ 的最后一位 $1$,只需要求 $x\&-x$ 即可,因为它们除了最后一位 $1$ 相同其他数字都相反。
因此可以求出 $\text{lowbit}(12) = (100)_{2} = (4)_{10}$。
以 $12$ 为例,$(12)_{10} = (1100)_{2},\ (-12)_{10} = (0011)_{2} + (1)_{2} = (0100)_{2}$
也就是说要求出 $x$ 的最后一位 $1$,只需要求 $x\&-x$ 即可,因为它们除了最后一位 $1$ 相同其他数字都相反。
因此可以求出 $\text{lowbit}(12) = (100)_{2} = (4)_{10}$。
Input
一行一个整数 $x\ (-10^9 \leq x \leq 10^9)$。
Output
一行一个整数,表示答案。
Sample 1 Input
12
Sample 1 Output
4