或与非
运算技巧
a&(a-1) 除去a二进制中最后一位1
a XOR 0 = a a与0的异或还是a
a XOR a = 0 a与a的异或为0
a XOR b XOR a = b 可用于去重
LeetCode : 136. Single Number 单一数字
一、与
有0出0;全1出1
A | B | F=AB |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
二、或
有1出1;全0出0
A | B | F=A+B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
三、非
用^代表事件相反
有1出0;有0出1。
A | F = ^A |
---|---|
0 | 1 |
1 | 0 |
四、与非
与操作相反
A | B | F = ^(A·B) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
五、或非
或操作相反
A | B | F = ^(A+B) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
六、与或非
A | B | C | D | F = ^(AB+CD) |
---|
七、异或
相同得0;相异得1
A | B | F = ^AB + A^B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
八、同或
相同得1;相异得0
A | B | F = AB + AB |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
首先记住与、或、非操作。与非、或非只需要先按照与、或判断,再非一下。异或、与或关键词在于《异:不同》为1、《与:相同》为1。
相关阅读
#X异或(X+1)是多少啊,求大神
三分钟掌握位运算符——与(&)、非(~)、或(|)、异或(^)
位运算符的计算主要用在二进制中。实际开发中也经常会遇到需要用到这些运算符的时候,同时这些运算符也被作为基础的面试笔试题。所