“&&”(邏輯與)是邏輯運算符。 “邏輯與”相當于生活中說的“并且”,就是兩個條件都同時成立的情況下“邏輯與”的運算結果才為“真”。
簡介
邏輯運算符把各個運算的變量(或常量)連接起來組成一個邏輯表達式。
邏輯運算符有3個:與(AND),或(OR),非(NOT)。在BASIC和Pascal等語言中可以在程序中直接用AND, OR,NOT作為邏輯運算符。在c語言中不能在程序中直接用AND, OR,NOT作為邏輯運算符,而是用其他符號代替,邏輯與(&&)、邏輯或(||)、邏輯非(!)。
在位運算里面還有 &(位與)、|(位或)的運算、”xor"(異或)等。
邏輯運算
邏輯運算用來判斷一件事情是“對”的還是“錯”的,或者說是“成立”還是“不成立”,判斷的結果是二值的,即沒有“可能是”或者“可能不是”,這個“可能”的用法是一個模糊概念,在計算機里面進行的是二進制運算,邏輯判斷的結果只有二個值,稱這二個值為“邏輯值”,用數的符號表示就是“1”和“0”。其中“1”表示該邏輯運算的結果是“成立”的,如果一個邏輯運算式的結果為“0”,那么這個邏輯運算式表達的內容“不成立“。
邏輯運算 (logical operators) 通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。
邏輯與運算的規則可以用“真值表”描述,兩個數據對象之間的邏輯運算規則見表如下:
邏輯表達式
用邏輯運算符將運算對象連接起來的表達式稱為邏輯表達式,在c語言中,構成邏輯運算的數據對象除了關系表達式外,還可以是任意的其他表達式。對其他表達式而言,非0值以邏輯“真(即1)”參加邏輯運算,0值以邏輯“假”參加邏輯運算。邏輯表達式的運算結果是一個邏輯值(即0或者1)。
C語言中進行邏輯表達式求值運算時,不但要注意邏輯運算符本身的運算規則,而且還必須要遵循下面的兩條原則:
具體理解邏輯表達式運算規則時,可以采用這樣的步驟:
區別
布爾“位”運算符與邏輯運算符比較相似,不同之處在于邏輯運算的最終結果為真或假,而布爾“位”運算符的結果是一個具體數據。
邏輯與&&
表示邏輯與的意思,即為and。當運算符兩邊的表達式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。
比如12&&23的結果就是1,12&&-1的結果是1,123&&0的結果就是0。
&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式,例如,對于if(str != null && !str.equals(“”))表達式,當str為null時,后面的表達式不會執行。
按位與&
表示按位與。
&表示按位與操作,我們通常使用0x0f來與一個整數進行&運算,來獲取該整數的最低4個刨刀位,例如,0x31 & 0x0f的結果為0x01。
二進制與運算規則:1&1=1 1&0=0 0&0=0
15&127為什么等于15啊
15二進制: (0000 1111)
127二進制: (0111 1111)
按位與自然就是(0000 1111)=15
參考資料 >