C++操作符&用法

inlineintlowbit(intx){returnx&(-x);}这个函数什么意思?... inline int lowbit(int x)
{
return x & (-x);
}

这个函数什么意思?
展开
 我来答
布谷娱乐
2012-10-06
知道答主
回答量:8
采纳率:0%
帮助的人:1.2万
展开全部
inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lavine搭讪
2022-03-29
知道答主
回答量:1
采纳率:0%
帮助的人:378
展开全部
int lowbit {
returnx&(-x);//返回x的二进制位的最后一位数是否为1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maogm12
推荐于2018-04-15 · TA获得超过130个赞
知道答主
回答量:85
采纳率:0%
帮助的人:57.7万
展开全部
& 是位运算里的位与操作,运算规则为
0 & 0 = 0,
0 & 1 = 0,
1 & 0 = 0,
1 & 1 = 1。
我估计这个函数是找出整数的二进制里面是1的位的最小位置,比如12(00000000 00001100),得到的结果是第三位为1,即00000000 00000100。
分析如下,首先把二进制分成从低到高两部分,一部分为低位的0连带第一个1,第二部分为剩下的部分,上例的12分为地位的100和高位的00000000 00001。而-x为取x的相反数,因为数在一般的计算机中是用补码表示,相反数的取法是对二进制取反然后加1,即-12为11111111 11110011 + 1 = 11111111 11110100。这样的话先取反,低位部分变成0加若干个1(011),高位取反就是,然后加1,若干个1由于会进位,低位又会变为1加若干个0(011 + 1 = 100),高位依旧是反的,那么就可以看出,其实函数的结果和高位部分没有关系了,因为和原来的数高位部分位与操作之后高位全是0,原数低位部分的0在结果中也是0,只有那个1留到了最后
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
记住一座城
2012-10-06 · TA获得超过728个赞
知道小有建树答主
回答量:1091
采纳率:33%
帮助的人:665万
展开全部
&位与运算符
追问
那这个函数什么意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式