关于markdown:位与运算符的使用

5次阅读

共计 472 个字符,预计需要花费 2 分钟才能阅读完成。

位与运算符的使用和区别

1.&(与运算符)

都是 1 则返回 1 反之则为 0

二进制转为十进制

0001 1011 => 27    
0101 0101 => 85

27 & 85=> 0001 0001 =>16+1=17

2.|(或运算符)

两边都是 0 则返回 0 其余状况则是 1

0001 1011 => 27
0101 0101 => 85

27 | 85 => 0101 1111=>1+2+4+8+16+64=>95

3.~(非运算符)

0000 0000 0000 0000 0000 0000 0000 0011     -> 3
1111 1111 1111 1111 1111 1111 1111 1100     -> ~ 3 = -4

4.^(非运算符)

^(亦或) 当运算符两边雷同地位都是雷同,后果返回 0,不雷同时返回 1。

1)、判断奇偶数

 咱们能够利用 & 运算符的个性,来判断二进制数第一位是 0 还是 1。用 if ((a & 1) == 0) 代替 if (a % 2 == 0) 来判断 a 是不是偶数。

2、替换两个数

a ^= b;
b ^= a;
a ^= b;

3、取余数

比如说咱们要让 a 对 16 进行取余,那么就能够让 a & 15 得进去的后果就是余数。

4 其余简略利用

  • 求相反数:~a + 1
  • 求绝对值:a >> 31 == 0 ? a : (~a + 1)
正文完
 0