C/C++ &與&& |與|| 的區別
阿新 • • 發佈:2018-12-08
&&
表示邏輯與的意思,即為and。當運算子兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。
比如 12&&23的結果就是1,12&&-1 的結果是1,123&&0的結果就是0
&&還具有短路的功能,即如果第一個表示式為false,則不再計算第二個表示式,例如,對於if(str != null && !str.equals(“”))表示式,當str為null時,後面的表示式不會執行,所以不會出現NullPointerException
&
表示按位與。
&表示按位與操作,我們通常使用0x0f來與一個整數進行&運算,來獲取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。
二進位制與運算規則:1&1=1 1&0=0 0&0=0
15&127為什麼等於15啊?
15二進位制: (0000 1111)
127二進位制: (1111 1111)
按位與自然就是(0000 1111)=15
||
表示邏輯或
邏輯或,是邏輯運算子,符號是“||”(在PASCAL中為"or")。 “邏輯或”相當於生活中的“或者”,當兩個條件中有任一個條件滿足,“邏輯或”的運算結果就為“真”
12||1 =1 12||0 =1 0||0 =0
|
表示按位或
按位或運算 按位或運算子“|”是雙目運算子。其功能是參與運算的兩數各對應的二進位(也就是最後一位)相或。只要對應的二個二進位有一個為1時,結果位就為1。
128: (0001 0000 0000)
127: (0000 1111 1111) (高位用0補齊)
按位或就是(0001 1111 1111)=255