在C語言中做邏輯判斷時經常會用到邏輯運算子(&&、|| 等),但還有一種位元運算子新手經常會搞混,與邏輯運算子不同,位元運算子是針對位元來做邏輯判斷,而這篇來簡單整理C語言中的位元運算子:
運算子
- and: &
- or: |
- xor: ^
- left shift: <<
- right shift: >>
- not: !
真值表
and | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
or | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 1 |
xor | 0 | 1 |
---|---|---|
0 | 1 | 0 |
1 | 0 | 1 |
not | 0 | 1 |
---|---|---|
1 | 0 |
left shift and right shift
- left shift: 0011 << 1 => 1100
- right shift: 1100 >> 1 => 0011
剛好作業有用到,算是紀錄一下,之後可能也會多少寫一些C的東西這樣。