以前覺得位元邏輯操作很難記,但昨天仔細看了一下後突然了解到之前沒有特別去理解 0
和 1
代表的意思而是用死背的方式,所以才容易忘記規則。
其實只要記住 0 == false
、1 == true
就會發現規則其實和程式中的 &&
和 ||
意思相同。
雖然我想其實應該是反過來,先有 &
(AND)、|
(OR) 的定義,程式語言才用 &&
和 ||
來作出 shortcut logic,但對像我這種半路直接學程式語言的人來說,借用程式語言的語義來記憶比較容易。
所以 &
和 &&
相同,表示要兩邊都為 true
才會輸出 true
,否則為 false
。而 |
和 ||
相同,只要有一邊為 true
就會輸出 true
:
& | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
| | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 1 |
而 ^
(XOR) 表示只有完全符合 OR 也就除了要有一邊是 true
以外,另一邊必須是 false
才會輸出 true
,而兩邊都是 true
的情況下依然輸出 false
:
^ | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 |
如果有什麼想法或需要指正的地方,歡迎您留言或來信 😄