布林代數
邏輯運算
&
位元與運算(AND)
位元與運算符將兩個數字的每個位元進行比較。如果兩個位元都為1,則結果為1;否則為0。
A | B | A & B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
例如: 5 & 3 = 1 (二進制:0101 & 0011 = 0001)
範例
python
a = 5
b = 3
c = a & b
print(c) # 1
|
位元或運算(OR)
位元或運算符將兩個數字的每個位元進行比較。如果至少一個位元為1,則結果為1;否則為0。
A | B | A | B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
例如: 5 | 3 = 7 (二進制:0101 | 0011 = 0111)
範例
python
a = 5
b = 3
c = a | b
print(c) # 7
^
位元異或運算(XOR)
位元異或運算符將兩個數字的每個位元進行比較。如果兩個位元不同,則結果為1;否則為0。
A | B | A ^ B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
例如: 5 ^ 3 = 6 (二進制:0101 ^ 0011 = 0110)
範例
python
a = 5
b = 3
c = a ^ b
print(c) # 6
~
位元反轉運算(NOT)
位元反轉運算符將數字的每個位元進行反轉。0變成1,1變成0。
A | ~A |
---|---|
0 | 1 |
1 | 0 |
例如: ~5 = -6 (二進制:~0101 = 1010,補碼表示法)
範例
python
a = 5
c = ~a
print(c) # -6
布林代數定律
名稱 | AND | OR |
---|---|---|
交換律 (Commutative Law) | ||
結合律 (Associative Law) | ||
分配律 (Distributive Law) | ||
同一律 (Identity Law) | ||
補數律 (Complement Law) | ||
德摩根定律 (De Morgan's Laws) |
範例
布林函數的化解
吸收律 (Absorption Law)
範例1
證明:
x + xy =
=
=
=
範例2
證明:
<<
左移運算(Left Shift)
左移運算符將所有位元向左移動指定的位數,右側補0。
A | A << 1 |
---|---|
0 | 0 |
1 | 2 |
2 | 4 |
3 | 6 |
4 | 8 |
5 | 10 |
例如: 5 << 1 = 10 (二進制:0101 << 1 = 1010)
範例
python
a = 5
c = a << 1
print(c) # 10
>>
右移運算(Right Shift)
右移運算符將所有位元向右移動指定的位數,左側補符號位。
A | A >> 1 |
---|---|
0 | 0 |
1 | 0 |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 2 |
例如: 5 >> 1 = 2 (二進制:0101 >> 1 = 0010)
範例
python
a = 5
c = a >> 1
print(c) # 2