c語言嘆號
『壹』 關於c語言 嘆號的意思
!:在C語言中是邏輯非運算符。
非運算的結果只有兩個,非0得1,非(非0)得0,即:非假即真,非真即假。0表示假,只要不是0的數都表示真!
『貳』 在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語言中邏輯非是什麼意思
邏輯非,是邏輯運算中的一種,就是指本來值的反值。
定義
「!」(邏輯非)邏輯運算符。
「邏輯非」就是指本來值的反值。
例如:" !0" 這個邏輯表達式的值為1.(判斷的這個數為0,成立,則其表達式的值為1)
" !1" 這個邏輯表達式的值為0.(判斷的這個數非0,不成立,則其表達式的值為0)
(3)c語言嘆號擴展閱讀:
性質
邏輯運算符把各個運算的變數(或常量)連接起來組成一個邏輯表達式。
邏輯運算符有3個,它們分別是: !(邏輯非)、 ||(邏輯或)、&&(邏輯與)。在位運算裡面還有 &(位與)、|(位或)、 ^(按位異或)的運算。
!運算符在邏輯運算符中的級別最高。