資料運算

指定運算子

( = ) 作用左邊傳值給右邊的變數。

int x = 5;
int i ;
i = x ;

上面表示 x會傳值給予 i ,就算 i 有其他的值,會把前面的值蓋掉。

算術運算

如下表,是各種運算子運算

運算子

幾元運算子

作用

+

二元運算

兩個數字作相加

-

二元運算

兩個數字作相減

*

二元運算

兩個數字作相

/

二元運算

兩個數字作相除

%

二元運算

兩個數字作取餘數

+

一元運算

將數字乘以+1

-

一元運算

將數字乘以-1

遞增、遞減

運算子

幾元運算子

作用

++

一元運算

將變數 +1

--

一元運算

將變數 -1

遞增/減,特點是有順序性加減,何謂有順序性, 假設 i = 5 ; i++ //執行結過會事先 5

++i //執行結過會事先 6

按照上面方式可以得知, i++ 視為 先取值後+1 , 則 ++i 視為 先 +1再取值。

練習

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int i = 5;
    printf("i++ => %d\n",i++);    
    printf("i => %d\n",i);    
    
    i=5;
    printf("++i => %d\n",++i);    
    system("PAUSE");
    return 0;
}

比較運算子

比較運算子,又稱"關係運算子",通常會出現 if / for / while 當中,主要是為條件/範圍作區隔。

運算子

幾元運算子

作用

>

二元運算

兩個數字作相加

<

二元運算

左邊資料小於右邊資料

>=

二元運算

左邊資料(大於/等於)右邊資料

<=

二元運算

左邊資料(小於/等於)右邊資料

==

二元運算

左邊資料等於右邊資料

!=

二元運算

左邊資料不等於右邊資料

邏輯運算

下方特點為 不執行結果,但有實際答案。 是作為減少執行結果的運算。 邏輯運算 && (類似像 數位邏輯中的 AND),|| 則是 (數位邏輯中的 OR)。'

運算子

幾元運算子

作用

&&

二元運算

兩邊關係是否都有成立

||

二元運算

兩邊關係其中是否有成立

!

一元運算

關係運算式的否定

位元運算

數位邏輯

上圖為數位邏輯(Gate 的輸出結果), a、b 為輸入,則 y 為輸出結果。

運算子

幾元運算子

作用

&

二元運算

兩個數值會以二進值 來執行 (AND)

|

二元運算

兩個數值會以二進值 來執行 (OR)

^

二元運算

兩個數值會以二進值 來執行 (XOR)

~

一元運算

兩個數值會以二進值 來執行 (NOT)

執行結果會如同上圖結果一樣,自行測試。

運算子

幾元運算子

作用

<<

二元運算

一個二進制數字左移N位元

>>

二元運算

一個二進制數字左移N位元

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int i = 15;
    int y = 2;
    printf("i >> y = %d\n",(i>>y));    
    printf("i << y = %d\n",(i<<y));    

    system("PAUSE");
    return 0;
}

優先順序

資料型態轉換

自動型態轉換

說明 : double > float > int > char

char c= 'a' int i =10 float f=3.6 double b = c + i+ f;

強制轉換型態

int a,b,c; float avg; avg =(float)(a+b+c)/3;

最后更新于

这有帮助吗?