Ⅰ c語言中的 與或非運算
C語言中的與、或、非是C語言的邏輯運算符。
1、邏輯與
在C語言中邏輯與用&&表示。
舉例:a&&b(其中a、b都代表一個條件)
如果a和b都為真,則結果為真,如果a和b中有一個條件為假,則結果為假。
2、邏輯或
在C語言中邏輯或用||表示。
舉例:a||b(其中a、b都代表一個條件)
如果a和b有一個或以上為真,則結果為真,二者都為假時,結果為假。
3、邏輯非
在C語言中邏輯非用!表示。
舉例:!a(a代表一個條件)
如果a為假,則!a為真,如果a為真,則!a為假。
(1)c語言沒有非運算符的嗎擴展閱讀
在C 語言中的邏輯運算符及優先順序:
一元:!(邏輯非)。
二元:&&(邏輯與)、||(邏輯或)。
以上三種邏輯運算符中,邏輯非 ! 的優先順序最高,邏輯與 && 次之,邏輯或 || 優先順序最低。即算術、邏輯、賦值運算符的優先順序順序為:
邏輯非 ! >算術 > 邏輯與 &&、邏輯或 || > 賦值=
Ⅱ c語言中邏輯非運算
邏輯非的優先順序最高,邏輯與次之,邏輯或最低,即:!(非) → &&(與) → ||(或)
記憶口訣:not(非) and(與) or(或)
運算規則
1)&&:當且僅當兩個運算量的值都為"真"時,運算結果為"真",否則為"假"。
2) || :當且僅當兩個運算量的值都為"假"時,運算結果為"假",否則為"真"。
3) ! :當運算量的值為"真"時,運算結果為"假";當運算量的值為"假"時,運算結果為"真"。
例如,假定x=5,則(x>=0) && (x<10)的值為"真",(x<-1) || (x>5)的值為"假"。
(2)c語言沒有非運算符的嗎擴展閱讀
優先順序
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先順序需要記住:
指針最優,單目運算優於雙目運算。如正負號。
先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.
邏輯運算最後結合。
Ⅲ 在C語言中與或非的非符號怎麼寫
c語言運算符號指的是運算符號。C語言中的符號分為10類:算術運算符、關系運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求位元組數運算符和特殊運算符。
C提供了六種位運算運算符;這些運算符可能只允許整型操作數,即char、short、int和long,無論signed或者unsigned。
& 按位AND
| 按位OR
^ 按位異或
<< 左移
>> 右移
~ 求反(一元運算)
按位與操作&通常用於掩去某些位,比如
n = n & 0177;
使得n中除了低7位的各位為0。
按位或操作|用於打開某些位:
x = x | SET_ON;
使得x的某些SET_ON與相對的位變為1。
按位異或操作^使得當兩個操作數的某位不一樣時置該位為1,相同時置0。
應該區分位操作符&、|與邏輯操作符&&、||,後者從左到右的評價一個真值。比如,如果x為1、y為2,那麼x & y為0,而x && y為1。
移位運算符<<和>>將左側的操作數左移或者右移右操作數給定的數目,右操作數必須非負。因此x << 2將x的值向左移動兩位,用0填充空位;這相當於乘4。右移一個無符號數會用0進行填充。右移一個帶符號數在某些機器上會用符號位進行填充(「算數移位」)而在其他機器上會用0進行填充(「邏輯移位」)。
單目運算符~對一個整數求反;即將每一個1的位變為0,或者相反。比如
x = x & ~077
將x的後六位置0。注意x & ~077的值取決於字長,因此比如如果假設x是16位數那麼就是x & 0177700。這種簡易型式並不會造成額外開銷,因為~077是一個常數表達式,可以在編譯階段被計算。
作為一個使用位操作的實例,考慮函數getbits(x,p,n)。它返回以p位置開始的n位x值。我們假設0位在最右邊,n和p是正數。例如,getbits(x,4,3)返回右面的4、3、2位。
/* getbits: 返回從位置p開始的n位 */
unsigned getbits(unsigned x, int p, int n)
{
return (x >> (p+1-n)) & ~(~0 << n);
}
表達式x >> (p+1-n)將需要的域移動到字的右側。~0是全1;將其左移n為並在最右側填入0;用~使得最右側n個1成為掩碼。
Ⅳ C語言的非運算符「!」怎麼使用
如果a是整型的話,那麼a/3得到的結果也是整型即5,這樣b==5的結果就是true,!(b==a/3)為false。
如果a是浮點型的話,那麼結果就是相反的了,a/3=5.333333,最終的結果是true。
Ⅳ 關於C語言的邏輯"非"運算符
非運算的結果只有兩個,非0得1,非(非0)得0,即:非假即真,非真即假。0表示假,只要不是0的數都表示真!
所以:
不看i和j的值,如果j%i的值為2,那麼!(j%i)的值是多少? 是0
如果j%i的值是-2,那麼!(j%i)的值是多少, 是0
Ⅵ 求c語言,與,或,非運算函數
按位「與」、「或」和「非」運算是C/C++中標准運算符,不需要另外編寫函數。
與運算: c = a & b;
或運算: c = a | b;
非運算: ~a;
非運算: ~b
另外,!是邏輯運算符,對於a,如果a 為 0,!a = 1,如果a 不為 0,則!a = 0。