数字逻辑电路 逻辑运算 与、或、非、与非、或非、与或非、异或、同或 二进制运算技巧

运算技巧

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 单一数字web

1、与

有0出0;全1出1svg

A B F=AB
0 0 0
0 1 0
1 0 0
1 1 1

2、或

有1出1;全0出0.net

A B F=A+B
0 0 0
0 1 1
1 0 1
1 1 1

3、非

用^表明事件相反code

有1出0;有0出1。xml

A F = ^A
0 1
1 0

4、与非

与操做相反blog

A B F = ^(A·B)
0 0 1
0 1 1
1 0 1
1 1 0

5、或非

或操做相反事件

A B F = ^(A+B)
0 0 1
0 1 0
1 0 0
1 1 0

6、与或非

A B C D F = ^(AB+CD)

7、异或

相同得0;相得1get

A B F = ^AB + A^B
0 0 0
0 1 1
1 0 1
1 1 0

8、同或

得1;相异得0it

A B F = AB + AB
0 0 1
0 1 0
1 0 0
1 1 1

首先记住与、或、非操做。与非、或非只须要先按照与、或判断,再非一下。异或、与或关键词在于《异:不一样》为一、《与:相同》为1。table