按位与运算符,妙哉!

编程入门 行业动态 更新时间:2024-10-24 06:27:56

按位与<a href=https://www.elefans.com/category/jswz/34/1771114.html style=运算符,妙哉!"/>

按位与运算符,妙哉!

&的运算实例

&是二进制按位与运算符,参加运算的两个数会以二进制的形式按位进行运算,运算规则如下:

  • 0 & 0 = 0
  • 0 & 1 = 0
  • 1 & 0 = 0
  • 1 & 1 = 1

按位与运算,当且仅当对应位次的数均为1的时候结果才为1,否则为0.
举个栗子:

6 & 7 = 6
解释:
6 -> 0000 0110
7 -> 0000 0111
0000 0110 (6)
0000 0111 (7)
0000 0110 (6)

对应位按上述规则依次运算。

运用实例

例一:
求一个数转化为二进制后1的个数
代码:

int count(int x) {int shu = 0;while (x > 0) {x &= (x - 1);shu++;}return shu;
}

原理:
每执行一次x = x & (x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。因此,对 x 重复该操作,直到 x 变成 0,则操作次数即为 x 的二进制数中的 1 的数目。
推荐题目:
338. 比特位计数
题目详解欢迎参考小编的另一篇博客╭☞(  ̄ ▽ ̄)╭☞338. 比特位计数

例二:
判断一个数是否为2的幂次方
代码:

bool isPowerOfTwo(int n){return n > 0 && (n&(n-1)) == 0 ? 1 : 0;
}

原理:
如果一个数是2的幂次方,那么这个数用二进制表示时其最高位为1,其余位为0。因此,仅当n & (n-1)等于0的时候(n > 0),n才是2的幂次方。
推荐题目:
231. 2 的幂

更多推荐

按位与运算符,妙哉!

本文发布于:2024-02-27 04:15:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705145.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:运算符   妙哉

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!