第一個版本:
實際開發中也經常會遇到需要用到這些運算符的時候,同時這些運算符也被作為基礎的面試筆試題。
所以了解這些運算符對程序員來說是十分必要的。
於此,記錄下我所理解的運算符:
如果以開關開燈論:
有這樣兩個開關,0為開關關閉,1為開關打開。
與(&)運算
與運算進行的是這樣的算法:
0&0=0,0&1=0,1&0=0,1&1=1
在與運算中兩個開關是串聯的,如果我們要開燈,需要兩個開關都打開燈才會打開。
理解為A與B都打開,則開燈,所以是1&1=1
任意一個開關沒打開,都不開燈,所以其他運算都是0
通俗理解為A(與)&B都開則開,否則關
非(~)運算
非運算即取反運算,在二進制中1變0,0變1
110101進行非運算后為
001010即1010
或(|)運算
或運算進行的是這樣的算法:
0&0=0,0&1=1,1&0=1,1&1=1
在或運算中兩個開關是並聯的,即一個開關開,則燈開。
如果任意一個開關開了,燈都會亮。
只有當兩個開關都是關的,燈才不開。
理解為A(或)|B任意開則開
異或(^)運算
異或運算通俗地講就是一句話
同為假,異為真
所以它是這樣的算法:
0&0=0,0&1=1,1&0=1,1&1=0
第二個版本:
設真值為1,假值為0(true = 1, false = 0)。
與運算符:
與(&&):邏輯規則是兩真才真。與and等同。
true && true = true ===> 1 && 1 = 1
true && false = false ===> 1 && 0 = 0
false && false = false ===> 0 && 0 = 0
false && true = false ===> 0 && 1 = 0
或運算符:
或(||):邏輯規則是只有一個為真就為真。與or等同。
true || true = true ===> 1 || 1 = 1
true || false = true ===> 1 || 0 = 1
false || false = false ===> 0 || 0 = 0
false || true = true ===> 0 || 1 = 1
異或運算符:
異或(^):邏輯規則是兩個不同就為真。
true ^ true = false ===> 1 ^ 1 = 0
true ^ false = true ===> 1 ^ 0 = 1
false ^ false = false ===> 0 ^ 0 = 0
false ^ true = true ===> 0 ^ 1 = 1
非運算符:
非(!):邏輯規則是反轉操作數的含義。與not等同。
!true =false ===> !1 = 0
!false=true ===> !0 =1
執行順序:not > and > or