中易网

c++中,k&=k-1是什么意思啊?

答案:4  悬赏:70  
解决时间 2021-01-23 21:41
c++中,k&=k-1是什么意思啊?
最佳答案
C++中,&符号有两个基本作用。一是取地址;第二个是按位与运算,就是AND运算,是二进制运算。这里显然不是取地址,而是后者。比如,k=23时,化成二进制就是10111,然后原式等价k = k & (k-1),也就是10111&10110,结果等于10110,就是22.
我用程序验证过。
全部回答
k = k & (k-1);
k=k+1; => k+=1;
k=k-1; => k-=1;
k=k*1; => k*=1;
k=k/1; => k/=1;
k=k&1; => k&=1;
在这里&是按位于运算符,k&=k-1;和a+=1形式一样,只是运算方法不一样
按位与运算符 &
按位与运算符是双目运算符,其功能是将参与运算的两操作数各自对应的二进制为进行于操作。只有对应的两个二进制位均为1 是,结果对应的二进制位才为 1,否则为0.例如:表达式“21&18”的计算结果是16(即二进制数10000),因为:
21用二进制表示就是:0000 0000 0000 0000 0000 0000 0001 0101
18用二进制表示就是:0000 0000 0000 0000 0000 0000 0001 0010
按位与所得结果是:0000 0000 0000 0000 0000 0000 0001 0000(21和18左起第五位都是1,对应出结果 1)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
姚村镇联合初中地址在哪,我要去那里办事
长高最快最有效的方法
变形虫,草履虫,衣藻各自的特点,结构,共同
那个净水器牌子好
用美的字谜运用形象化的描述
木质办公桌椅注册资本多少钱
广州做脱毛大概要多少钱,,,就脱胡子!!
YY皇马是什么啊
鱼缸放在客厅里什么地方好,房子是东西向
有三条手腕纹好吗?在手相中呢?
怎么用节拍器弹16分音符,8分音符,我初学钢
蓄电池用的什么铅
怎样才能把hype生成h5文件全部发送出去并保证
MBA辅导广州地区哪家比较好
卤水老汤每次用法
推荐资讯
NSk51114轴承多少钱一个
如何避免烤瓷牙崩瓷
家用小锅炉烟囱高度多少合适?
我想知道有关咖玛刀的收费情况
为什么乐购工资呢么低还有人在那干
我的世界怎么做天堂传送门
左踝距腓前韧带断裂...
bt137的贴片封装的型号是什么
扁平疣!急急急!张右手手背长了20多个扁平疣
空调更换压缩机
结婚当天,新郎去接新娘,女方未开门前用来整
学历低,没经验,做什么工作好呢?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?