老分不清一個&號和倆的用法,今天專門拿出來整理整理:
一、邏輯運(yùn)算符:
包括:1。&&邏輯與 2。||邏輯或 3。!邏輯非 邏輯運(yùn)算符用于對包含關(guān)系運(yùn)算符的表達(dá)式進(jìn)行合并或取非 對于使用邏輯運(yùn)算符的表達(dá)式,返回0表示“假”,返回1表示“真”。關(guān)于邏輯運(yùn)算符的解釋 請注意:任何使用兩個字符做符號的運(yùn)算符,兩字符之間不應(yīng)有空格,即將==寫成= =是錯誤的。 假設(shè)一個程序在同時滿足條件a<10和b==7時,必須執(zhí)行某些操作。應(yīng)使用關(guān)系運(yùn)算符和邏輯運(yùn)算符“與”來寫這個 條件的代碼。用&&表示“與”運(yùn)算符,該條件代碼如下: (a<10) && (b==7); 類似地,“或”是用于檢查兩個條件中是否有一個為真的運(yùn)算符。它由兩個連續(xù)的管道符號(||)表示。如果上例 改為:如果任一語句為真,則程序需執(zhí)行某些操作,則條件代碼如下: (a<10) || (b==7); 第三個邏輯運(yùn)算符“非”用一個感嘆號(!)表示。這個運(yùn)算符對表達(dá)式的真值取反。例如,如果變量s小于10,程序 程序需執(zhí)行某些操作,則條件代碼如下: (s<10) 或 (!(s>=10)) //s不大于等于10 關(guān)系運(yùn)算符和邏輯運(yùn)算符的優(yōu)先級一般都低于算術(shù)運(yùn)算符。例如,5>4+3的計算與5>(4+3)運(yùn)算符是一樣的,即 先計算4+3,再執(zhí)行關(guān)系運(yùn)算。此表達(dá)示的結(jié)果為“假”,即,將返回0。 下面的語句 printf("%d",5>4+3); 將輸出 0
可以總結(jié)為:&&的結(jié)果是真真為真。||的結(jié)果是假假為假。
二、位運(yùn)算符:
包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符 以操作數(shù)12為例。位運(yùn)算符將數(shù)字12視為1100。位運(yùn)算符將操作數(shù)視為位而不是數(shù)值。數(shù)值 可以是任意進(jìn)制的:十進(jìn)制、八進(jìn)制或十六進(jìn)制。位運(yùn)算符則將操作數(shù)轉(zhuǎn)化為二進(jìn)制,并相應(yīng)地返回1或0。 位運(yùn)算符將數(shù)字視為二進(jìn)制值,并按位進(jìn)行相應(yīng)運(yùn)算,運(yùn)算完成后再重新轉(zhuǎn)換為數(shù)字。例如: 表達(dá)式10&15表示(1010 & 1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結(jié)果也是1 表達(dá)式10|15表示(1010 | 1111),它將返回表示1111的值15。假假得假。全零得零。 表達(dá)式10^15表示(1010 ^ 1111), 它將返回表示0101的值5。此時是同性相斥,相同的就為假。 表達(dá)式~10表示(~1010),它將返回表示0101的值 -11。此號好理解,按位取反
|