「&&」 與 「||」
關係運算子 (返回ture / false)
&& 表示邏輯 " 與 " ,|| 表示邏輯 " 或 " ,&& 和 || 是按照 " 短路 " 方式求值的。
如果第乙個運算元已經能夠確定表示式的值,第二個運算元就不必計算了。
如果用 && 對兩個表示式進行計算:
expression1 && expression2
並且第乙個表示式的值為false,結果不可能為真。因此第二個表示式的值就沒有必要計算了。
這種方式可以避免一些錯誤的發生。
例如,表示式:x != 0 && 1/x > x + y // no division by 0
當x為0時,不會計算第二部分。因此,如果x為0,1/x不被計算,也不會出現除以0的錯誤。
對於 expression1 || expression2
當第乙個表示式為true時,結果自動為true,不必計算第二部分。
如果第乙個表示式為false,則第二個表示式將被執行計算,若第二個表示式為true,則結果為true;
即:只要兩個表示式其中乙個為true時,結果就為true;否則結果為false;
「&」 與 「|」
位運算子
此過程需要用到二進位制去運算。
例如:十進位制數:
a=10;
b=15;
轉換成二進位制數:(關於二進位制轉換請參考:
a=1010;
b=1111;
a & b=1010;
a | b=1111;
a ^ b=0101;
~ a=0101;
下表列出了位運算子的基本運算,假設整數變數a的值為60和變數b的值為13:
操作符描述例子&
如果相對應位都是1,則結果為1,否則為0
(a&b),得到12,即0000 1100
|如果相對應位都是0,則結果為0,否則為1
(a | b)得到61,即 0011 1101
^如果相對應位值相同,則結果為0,否則為1
(a ^ b)得到49,即 0011 0001
〜按位補運算子翻轉運算元的每一位,即0變成1,1變成0。
(〜a)得到-61,即1100 0011
<<
按位左移運算子。左運算元按位左移右運算元指定的位數。
a << 2得到240,即 1111 0000
>>
按位右移運算子。左運算元按位右移右運算元指定的位數。
a >> 2得到15即 1111
>>>
按位右移補零操作符。左運算元的值按右運算元指定的位數右移,移動得到的空位以零填充。
a>>>2得到15即0000 1111
java中 和 和 和 詳解
首先 和 都有短路的功能 表示and條件並列,而 表示或者的意思 如果第乙個條件為false後邊的條件 不執行了,如果第乙個條件為true那麼繼續執行第二個條件,第二個條件為false那麼結果為false。第乙個為true第二個為false那麼結果為false。都為true那麼結果也為true 不管...
java符號 和 和 的用法和區別
例子 package symbol public class testsymbol 運算規則 兩個數都轉為二進位制,然後從高位開始比較,如果兩個數都為1則為1,否則為0。比如 129 128.129轉換成二進位制就是10000001,128轉換成二進位制就是10000000。從高位開始比較得到,得到...
linux 和 , 和 說用法
分號用法 方式 command1 command2 用 號隔開每個命令,每個命令按照從左到右的順序,順序執行,彼此之間不關心是否失敗,所有命令都會執行。管道符用法 方式 command1 command2 linux所提供的管道符 將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連...