1 7 C語言基本運算子

2021-10-06 10:36:35 字數 2958 閱讀 4753

算術運算子:+ - * / % ++ –

++、–在前,先自加/直減 然後參與運算

++、–在後,先參與運算 然後自加/直減

如果++、–單獨為一行**的時候,不考慮上述問題

關係運算子:< > <= >= == !=

用於做多個資料之間的比較,資料之間的比較結果只可能是0(false)或1(true)

特殊運算子

三目運算子: 表示式?當表示式成立返回的內容:當表示式不成立返回的內容

邏輯運算子: && 與 、 || 或 、 ! 非

用於連線多個條件表示式

&&: 1 && 1: 1 1 && 0: 0 0 && 1: 0 0 && 0: 0

使用&&連線多個條件表示式,只有多個條件表示式都成立整個表示式才成立

||: 1 || 1:1 1 || 0:1 0 || 1: 1 0 || 0: 0

使用||連線多個條件表達,只要有乙個條件表示式成立整個表示式就成立

!: !1:0 !0:1 成立的條件取!變為不成立,不成立的條件取!變為成立

位運算

&(按位於) 、 |(按位或)、 ^(按位異或)、 ~(按位取反) 、>>(右移)、 <

1、&(按位於):與0得0

char a = 9;

char b = a & 7;

0000 1001 &0000 0111 = 0000 0001

b = 1;

兩個數進行按位於操作,兩個數的二進位制位都為1,結果為1,否則為0

char a = 10;

char b = a ^ 8;

0000 1010 ^ 0000 1000 = 0000 0010

b = 2;

2、|(按位或):或1得1

3、 ^(按位異或):相同為0,不同為1

4、~(按位取反) :是對該數的補碼進行按位取反+ 13

0000 1101–原碼

0000 1101–反碼

0000 1101–補碼

~ 1111 0010 補碼是負數

1111 0001 反碼

1000 1110 原碼

正數: 原碼 – 反碼-- 補碼 相同

負數: 原碼取反–補碼–+1 反碼

補碼 -1—反碼-- 反碼取反–原碼

在計算機記憶體中儲存乙個數,存的是該數的補碼

char a1 = 0b11111111; 二進位制表示-1

char a2 = 0xff; 十六進製制表示-1

char a3 = -1; 十進位制表示-1

在記憶體儲存中表現方式是一樣,二進位制儲存

思考

1).如何將乙個數快速的清0 ------------- 與上等位的0

2).如何將乙個數快速的置1 ------------- 或上等位的1

3).將某一位清0 ------------- 與上相同位的0,其他位為1

4).將某一位置1 ------------- 或上相同位的1,其他位為0

5、>>(右移) :將資料按位向右移動

a >> 2; //不會改動a的值

a = a >> 2; //會改動a的值

char a = 10;

char b = a >> 2;

0000 1010 >> 0000 0010 b = 2;

6、<

char a = 10;

char b = a >> 2;

0000 1010 >> 0000 0010

b = 0x02;

a = 10;

b = a << 2;

0000 1010 << 0010 1000

b = 0x28;

b = 40;

左移/右移操作同樣可以用於快速清零。

賦值運算子

1、= 將右邊運算元的值給左邊運算元 c = a + b;

2、+= 將左邊運算元加上右邊運算元的結果賦值給左邊的運算元 a +=b —> a = a+b;

3、-= 將左邊運算元減上右邊運算元的結果賦值給左邊的運算元 a =b —> a = a-b;

4、*= 將左邊運算元乘上右左邊運算元的結果賦值給左邊的運算元 a = b —> a = ab;

5、/= 將左邊運算元除上右邊運算元的結果賦值給左邊的運算元 a /= b —> a = a/b;

6、%= 將左邊運算元模上右邊運算元的結果賦值給左邊的運算元 a %= b —> a = a%b;

7、<<= 左移且賦值運算子 a <<= b —> a = a<>= 右移且賦值運算子 -a >>= b —> a = a>>b;

9、&= 按位與且賦值運算子 a &= b —> a = a&b;

10、|= 按位或且賦值運算子 a |= b —> a = a|b;

11、^= 按位異或且賦值運算子 a ^= b <==> a = a^b;

特殊運算子

1、三目運算子

?:表示式?表示式成立執行的內容:表示式不成立執行的內容

2、逗號運算子 , 在表示式中,決定最後的內容,逗號運算子的結合性是從左到右,完畢過後整個表示式的值是最後乙個表示式的值

4、sizeof() 求取資料型別或者變數的大小,單位是位元組

與變數值無關,與資料型別有關,求取的是占用的記憶體空間,返回長整型

& 取位址符 :返回的是變數的位址 int a = 10; &a;將變數a的實際位址給出

* 指標運算子 :*指向乙個變數

運算優先順序

15級 ! > 算術運算子 > 關係運算子 > && > || > 賦值運算子

C語言 基本運算子

1.加法運算子 除了可以進行加法運算外,還可以表示正號 521 2.減法運算子 除了可以進行減法運算外,還可以表示負號 741 3.乘法運演算法符 請注意符號不是x,而是 4.除法運算子 請注意符號不是 而是 整數除以整數還是整數,1 2的值不是0.5而是 0。5.區域運算子 取餘就是兩個整數相除之...

C語言基本運算子

一 算術運算子 1.基本算術運算子 加 減 乘 除 和 求餘數 這五個運算子的優先順序為 和 同級,但比 和 高。即先乘除後加減。兩個整數相除,結果為一整數 分子小於分母,結果為零。例如 5 2 結果為 2 2 5 結果為 0 這五個運算子的結合性為 自左至右。例如 10 6 42 第一步先計算10...

C語言基礎學習運算子 基本算術運算子

基本算術運算子 c語言中用於基本算術運算的運算子有 這些運算子的用法和你想像到的基本無異 加法運算子 使得它兩側的值被加到一起。減法運算子 用它前面的數減去後面的數。乘法由 表示。c語言並沒有計算平方的函式,也沒有指數運算子。但你可以利用乘法來計算平方。符號 表示求餘。求餘運算的結果是兩數相除後的餘...