論「 」和「 」 以及「 」和「 」的區別

2021-08-03 14:32:53 字數 828 閱讀 5245

論「&&」和「&」;以及「||」和「|」的區別:

一、分類不一樣

1.「&&」和「||」只屬於邏輯運算符號,輸出結果只有true和false,兩種結果;

2.(1)「&」和「|」屬於位運算符號,表示位運算子。x|y表示先把x與y轉換成二進位制,再對每一位進行|運算,只要有乙個為1,則結果為1,二個都為0,結果才為0, x|y輸出乙個新的數。x&y表示先把x與y轉換成二進位制,再對每一位進行|運算,每一位兩個都為1,則結果為1,任意乙個為0,結果為0, x|y輸出乙個新的數。如intc = 5 | 16,那麼輸出c為21;如intc = 5 &16,那麼輸出   c為0。

(2)&」和「|」也可以作為邏輯運算,輸出結果也只有true和false兩種結果。

二、邏輯運算時「&」和「|」與的「&&」和「||」相同之處與區別

1.相同之處:

(1)「&&」和「&」均表示與,需兩邊均為真時為真,其他為假。如5 > 3 & 5>4,與5 > 3 &&5>4,輸出結果均為真。

(2)「||」和「|」均表示或,兩邊均為假時為假,其他為真。如5 > 3 & 5<4,與5 > 3 &&5<4,輸出結果均為真。

2.區別:

「&&」和「||」為短路運算子:對於「&&」只要檢測到左邊boolean值為false時,就直接判斷結果為false,不會進行右邊的計算(因為"與"有乙個false最後結果就是false了);同樣「||」 只要檢測到左邊boolean值為true時,就直接判斷結果為true,不會進行右邊的計算了。「&」和「|」為非短路運算子,兩側結果均進行判斷後,再輸出。故在進行邏輯運算時「&&」和「||」運算速度可能要快一些。

和 以及 和 的區別

和 都可以用作邏輯與的運算子,表示邏輯與 and 當運算子兩邊的表示式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。還具有短路的功能,即如果第乙個表示式為false,則不再計算第二個表示式,例如,對於if str null str.equals 表...

和 以及 和 的區別

一 概念 按位與 a b是把a和b都轉換成二進位制數然後再進行與的運算 邏輯與 a b就是當且僅當兩個運算元均為 true時,其結果才為 true 只要有乙個為零,a b就為零。二 與 的區別 和 都可以用作邏輯與的運算子,表示邏輯與 and 當運算子兩邊的表示式的結果都為true時,整個運算結果才...

陣列和指標的區別(a和 a以及 a 0 的區別)

一 一維陣列 這裡記住陣列的首位址和陣列首元素的位址是不一樣的,雖然他們的值是一樣的,但是代表的意思不一樣 陣列 int a 5 a是陣列的共五個整形資料的記憶體的名字,是一塊連續的位址的名字 a代表首元素的位址同 a 0 是一樣的 所以a 1代表的是第二個元素的位址 a則是整個記憶體空間的位址,所...