lowbit————————啥呀 help

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也扮演着一份不可忽视的角色。

2 个赞

lowbit(x)=(x)&(-x)

1 个赞

@金杭东 这都一年多了还回复,关帖吧

不是