邏輯與,按位與;邏輯或,按位或 之間的區別


邏輯與邏輯或邏輯非是對boolean值得操作,屬於離散數學范疇。
按位與、按位或、按位非是對計算機位的操作,屬於計算機二進制位運算范疇。
邏輯與 都是真才真 c中區分&、&&的區別。
邏輯或 有真就是真 c中區分|、||的區別。
邏輯非 假才真 c中為!。
按位與、按位或、按位非按照上面的規則對每一位進行邏輯運算,其中1代表真0代表假。

一個是位操作,一個是條件計算操作
邏輯運算符用來判斷真假;位操作符用來計算。


C/C++ &&& ||| 的區別:

 

&&

表示邏輯與的意思,即為and。當運算符兩邊的表達式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false

比如 12&&23的結果就是112&&-1 的結果是1123&&0的結果就是0

 

&&還具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式,例如,對於if(str != null && !str.equals(“”))表達式,當strnull時,后面的表達式不會執行,所以不會出現NullPointerException

 

&

表示按位與。

&表示按位與操作,我們通常使用0x0f來與一個整數進行&運算,來獲取該整數的最低4bit位,例如,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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM