lowbit
Problem ID: 9839
Contest ID: 4309
选做题
题目描述:
定义一个函数 f=lowbit(x),这个函数的值是 x 的二进制表达式中最低位的 1 所对应的值。
例如
lowbit(6) 就等于 2,因为 (110)2 中最低位(就是从右往左数的第二位)对应的数是2^1=2
所以假设一个数的二进制最低位的1在从右往左数的第k位,那么它的lowbit值就是 2^(k−1)
请你设计一个函数,可以计算出x的lowbit值:
输入格式:
一个十进制整数x
输出格式:
一个十进制整数
输入样例
6
输出样例
2
补充:关于lowbit运算,最著名的应用应该算是树状数组。但是lowbit的神妙远远不止树状数组,在很多二进制和位运算的相关题目中,都有lowbit运算的影子。甚至,在状态压缩DP中,lowbit也扮演着一份不可忽视的角色。