複製鏈接
請複製以下鏈接發送給好友

邏輯與

鎖定
邏輯與,符號為“&&”,只有兩個操作數都是真,結果才是真。 邏輯與操作屬於短路操作,既如果第一個操作數能夠決定結果,那麼就不會對第二個操作數求值。對於邏輯與操作而言,如果第一個操作數是假,則無論第二個操作數是什麼值,結果都不可能是真,相當於短路了右邊。 [1-2] 
中文名
邏輯與
外文名
and
別    名
邏輯相乘
類    別
邏輯運算符
特    點
短路操作
邏輯運算符
&&

邏輯與簡介

“&&” "·"表示與 (邏輯與)是邏輯運算符
“邏輯與”相當於生活中説的“並且”,就是兩個條件都同時成立的情況下“邏輯與”的運算結果才為“真”。
邏輯運算符把各個運算的變量(或常量)連接起來組成一個邏輯表達式
邏輯運算符有3個:與(AND),或(OR),非(NOT)。在BASIC和Pascal等語言中可以在程序中直接用AND, OR,NOT作為邏輯運算符。在C語言中不能在程序中直接用AND, OR,NOT作為邏輯運算符,而是用其他符號代替,邏輯與(&&)、邏輯或(||)、邏輯非(!)。 [3] 
在位運算裏面還有 &(位與)、|(位或)的運算、”xor"(異或)等。

邏輯與邏輯運算

邏輯運算用來判斷一件事情是“對”的還是“錯”的,或者説是“成立”還是“不成立”,判斷的結果是二值的,即沒有“可能是”或者“可能不是”,這個“可能”的用法是一個模糊概念,在計算機裏面進行的是二進制運算,邏輯判斷的結果只有二個值,稱這二個值為“邏輯值”,用數的符號表示就是“1”和“0”。其中“1”表示該邏輯運算的結果是“成立”的,如果一個邏輯運算式的結果為“0”,那麼這個邏輯運算式表達的內容“不成立“。
邏輯運算 (logical operators) 通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。 [3] 
邏輯與運算的規則可以用“真值表”描述,兩個數據對象之間的邏輯運算規則見表如下:
A
B
A&&B
!A
A||B
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1

邏輯與邏輯表達式

用邏輯運算符將運算對象連接起來的表達式稱為邏輯表達式,在C語言中,構成邏輯運算的數據對象除了關係表達式外,還可以是任意的其他表達式。對其他表達式而言,非0值以邏輯“真(即1)”參加邏輯運算,0值以邏輯“假”參加邏輯運算。邏輯表達式的運算結果是一個邏輯值(即0或者1)。 [1] 
C語言中進行邏輯表達式求值運算時,不但要注意邏輯運算符本身的運算規則,而且還必須要遵循下面的兩條原則:
·對邏輯表達式從左到右進行求解。
·短路原則:在邏輯表達式的求解過程中,任何時候只要邏輯表達式的值已經可以確定,則求解過程不再進行,求解結束。
具體理解邏輯表達式運算規則時,可以採用這樣的步驟:
①找到表達式中優先級最低的邏輯運算符,以這些運算符為準將整個邏輯表達式分為幾個計算部分。
②從最左邊一個計算部分開始,按照算術運算、關係運算和邏輯運算的規則計算該部分的值。每計算完一個部分就與該部分右邊緊靠着的邏輯運算符根據真值表進行邏輯值判斷。
③如果已經能夠判斷出整個邏輯表達式的值則停止其後的所有計算:只有當整個邏輯表達式的值還不能確定的情況下才進行下一個計算部分的計算。 [1] 

邏輯與&與&& 的區別

布爾“位”運算符與邏輯運算符比較相似,不同之處在於邏輯運算的最終結果為真或假,而布爾“位”運算符的結果是一個具體數據。 [4] 

邏輯與邏輯與&&

表示邏輯與的意思,即為and。當運算符兩邊的表達式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。
比如12&&23的結果就是1,12&&-1的結果是1,123&&0的結果就是0。
&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式,例如,對於if(str != null && !str.equals(“”))表達式,當str為null時,後面的表達式不會執行。

邏輯與按位與&

按位運算指的是把字符變成二進制然後 按位運算。 [5] 
表示按位與。
&表示按位與操作,我們通常使用0x0f來與一個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。
二進制與運算規則:1&1=1 1&0=0 0&0=0
15&127為什麼等於15啊?
15二進制: (0000 1111)
127二進制: (0111 1111)
按位與自然就是(0000 1111)=15
參考資料
  • 1.    熊壯.C語言程序設計基礎 第2版:重慶大學出版社,2016.9
  • 2.    閻石. 數字電子技術基礎(第5版): 高等教育出版社 ,2006.5
  • 3.    譚浩強 .C程序設計(第4版):清華大學出版社,2010.6
  • 4.    徐溳基,黃建華.單片機原理及應用:航空工業出版社,2016.08:152
  • 5.    林小茶,陳昕 .C程序設計教程(第3版):清華大學出版社,2018.6