c 運算子說明

2021-10-24 09:33:12 字數 1774 閱讀 7464

左右兩個條件都成立時,整體才成立。

左右兩個條件中有乙個成立,整體就成立。

?前面是判斷語句,當成立時輸出:左邊值,不成立時輸出:右邊值。

int c = a > b ?2:

3;// 當a大於b時,c被賦值2,否則被賦值3

相同位的兩個數字都為0,則為0,若有乙個不為0,則為1;

#define tuanyuan 1

#define dangyuan 2

#define ganbu 4

#define pingmin 8

//單個位為1的數值,我們稱為標誌位

int k = ganbu | dangyuan;

//代表即是幹部也是黨員

k = k | dangyuan | pingmin;

//會再給他加上平民屬性,已存在的黨員屬性不會疊加

相同位的兩個數字都為1,則為1,若有乙個不為1,則為0;

與運算用來判斷,判斷是否包含相應的屬性。也可以用來清理其它位。

if

(k & dangyuan)

printf

("是黨員");

else

printf

("不是黨員");

int k = ganbu | dangyuan;

int a = k & tuanyuan;

//a等於0

a = k & ganbu;

//a等於4

a = k & pingmin;

//a等於0

a = k & dangyuan;

//a等於2

單目運算,將乙個數字所有二進位制0變1,1變0。(無符號時相當於最大值減自己,有符號相當於乘-1,正變負時絕對+1,負變正絕對值-1)

和&連用,用來刪除乙個標誌混合變數中的某個屬性。

int k = ganbu | dangyuan;

k = k &

~ganbu;

//將幹部屬性刪除

k = k &

~ganbu;

//被開除後,不會再被開除

雙目運算,當相同的兩個數字相同時為0,不同時為1。(兩次跟同乙個數字^運算結果,恢復原來之前數值)

int i =13;

//原始碼

int j =14;

//加密

int k = i ^ j;

//生成碼

int x = k ^ j;

//原始碼

移幾位就相當於這個數乘以2的幾次方

int i =

1<<3;

// 1乘以2的3次方,i等於8

int j =

5<<3;

// j等於40

移幾位相當於這個數除以2的幾次方

int i =

8>>2;

// 8除以2的2次方,i 等於2

一級優先順序 左結合

二級優先順序 右結合

**優先順序 左結合

四級優先順序 左結合

五級優先順序 左結合

六級優先順序 左結合

七級優先順序 左結合

八級優先順序 左結合

九級優先順序 左結合

十級優先順序 左結合

十一級優先順序 左結合

十二級優先順序 左結合

十**優先順序 右結合

十四級優先順序 右結合

C 移位運算子詳細說明

為什麼需要移位?移位可以提高 的執行效率,增快執行的速度。向左移n位 等價於 2 n 向右移n位等價於 2 n 以前感覺移位運算子自己挺明白的,也許是學的時間長了,後來一看,忘得差不多了。現在參考一些網上的學習資料,將位移運算子整理一下,作為知識點總結,也算個積累。在講移位運算子之前,先簡單補充一下...

c 運算子過載使用說明

運算子過載概念 對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別 一般有 左移,遞增,賦值,關係函式呼叫這幾種運算子過載 基本形式為 返回型別 operator 參數列 1 運算子過載 person int型別 cpp person operator person p,int nu...

C 運算子過載賦值運算子

自定義類的賦值運算子過載函式的作用與內建賦值運算子的作用類似,但是要要注意的是,它與拷貝建構函式與析構函式一樣,要注意深拷貝淺拷貝的問題,在沒有深拷貝淺拷貝的情況下,如果沒有指定預設的賦值運算子過載函式,那麼系統將會自動提供乙個賦值運算子過載函式。賦值運算子過載函式的定義與其它運算子過載函式的定義是...