運算式
文章推薦指數: 80 %
運算符號 · ※與國小數學中所學到的規則相同,先乘除後加減,有括號則先做。
· 運算符號的優先順序與結合律.
〔回高一首頁〕〔回上一頁〕
程式與數學的分別
main(){ int
a,b; a=23; b=a+2; //請問這時候b=?? b=b+2; //請問這時候b=??}
以上例子提到表示式b=a+2與數學表示式很似,不過,程式與數學不是完全相同的。
就以等於符號「=」為例,以下是一個表示式:
左邊表示式
=
右邊表示式
在數學上,這是「等式」(Equation),意思是「左邊表示式的值與右邊表示式的值是相等的」,但在程式上就不是這個意思了,而是「把右邊表示式的值儲存在左邊表示式所代表的記憶體地址」。
運算符號
意義
=
右值指定給左值
程式與數學的相同
運算符號
許多特殊字元具有特別的意義,下列是幾個算術運算符號:
+:加法 -:減法 *:乘法 / :除法 %:餘數,只適用於整數型態 ※與國小數學中所學到的規則相同,先乘除後加減,有括號則先做。
運算符號的優先順序與結合律
運算式的計算要依據運算符號的優先順序(precedure)與結合律(associativity)的規則,但是在括弧內的運算式則必須先計算。
括弧使運算看來更明白,也能改變運算的先後次序,以下列的運算式為例:1
+2*3 由於"*"的優先順序高於"+",亦即要先作乘法再作加法,因此計算後所得結 果為7。
這式子也可寫成這樣:1+(2*3
) 另一方面,由於括弧中的運算式要先計算,因此下列所示(1+2)*3 的運算結果就不一樣了;其答案為9。
再看下面這個運算式1+2-3
+4-5 因為"+"和"-"具有相同的優先順序,根據結合律,這式子要由左而右計算, 這就相當於(((1+2)-3)+4)-
5
下面的表格是一些運算符號的優先順序與結合律。
運算符號
結 合 律(運算順序)
-(單元的正負號) ++ --
由右至左
* / %
由左至右
+ -
由左至右
= += -= *= /=
由右至左
複合的賦值運算符
在賦值符“=”之前加上其他二目運算符可構成複合賦值符。
如+=,-=,*=,=,%=,<<=,>>=,&=,^=,|=構成複合賦值運算式的一般形式為:
變數 雙目運算符=運算式
變數=變數運算符運算式
a+=5 等價於a=a+5
x*+=y+7 等價於x*=x*(y+7)
r%=p 等價於r=r%p
複合賦值符這種寫法,對初學者可能不習慣,但十分有利於編譯處理,能提高編譯效率並產生品質較高的目標代碼。
i=i+1; => i+=1; => i++;
:1++11--111 ++i ; //i自增1後再參與其他運算。
--i; //i自減1後再參與其他運算。
i++ ; // i參與運算後,i的值再自增1。
i-- ; //i參與運算後,i的值再自減1。
在理解和使用上容易出錯的是i++i--特別是當它們出在較複雜的運算式或語句中時,常常難於弄清,因此應仔細分析。
【例】
#include
【例】
#include
然後i再自增1三次相當於加3故i的最後值為8。
而對於q的值則不然,q=(++j)+(++j)+(++j)應理解為q先自增1,再參與運算,由於q自增1三次後值為8,三個8相加的和為24,j的最後值仍為8。
類型轉換
如果賦值運算符兩邊的資料類型不相同,系統將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。
具體規定如下:
1) 實型賦予整型,舍去小數部分。
前面的例子已經說明了這種情況。
2) 整型賦予實型,數值不變,但將以浮點形式存放,即增加小數部分(小數部分的值為0)。
3) 字元型賦予整型,由於字元型為一個位元組,而整型為二個位元組,故將字元的ASCIIcode。
【例】
#include
a為整型,賦予實型量y值8.88後只取整數8。
x為實型,賦予整型量b值322,後增加了小數部分。
字元型量c1賦予a變為整型,整型量b賦予c2後取其低八位元成為字元型(b的低八位為01000010,即十進位66,按ASCII碼對應於字元B)。
自動轉換遵循以下規則:
1) 若參與運算量的類型不同,則先轉換成同一類型,然後進行運算。
2) 轉換按資料長度增加的方向進行,以保證精度不降低。
如int型和long型運算時,先把int量轉成long型後再進行運算。
3) 所有的浮點運算都是以雙精度進行的,即使僅含float單精確度量運算的運算式,也要先轉換成double4) char型和short型參與運算時,必須先轉換成int5) 在賦值運算中,賦值號兩邊量的資料類型不同時,賦值號右邊量的類型將轉換為左邊量的類型。
如果右邊量的資料類型長度左邊長時,將丟失一部分資料,這樣會降低精度,丟失的部分按四捨五入向前舍入。
】
main(){
float
PI=3.14159;
ints,r=5;
s=r*r*PI;
printf("s=%d\n",s);
}
本例程式中,PI為實數;s,r為整數。
在執行s=r*r*PI語句時,r和PI都轉換成double型計算,結果也為double型。
但由於s為整型,故賦值結果仍為整型,舍去了小數部分。
其一般形式為:
(類型說明符) (運算式)
其功能是把運算式的運算結果強制轉換成類型說明符所表示的類型。
例如:
(float)a a
(int)(x+y) x+y
延伸文章資訊
- 1插入數學符號
使用公式工具在公式或文字中插入數學符號。 ... 在Word 中,您可以使用方程式工具來將數學符號插入至方程式或文字。 ... 在兩個數量之間進行運算的符號,例如+ 和÷.
- 2數學常用符號+ 釋義整理 - 叮咚- 痞客邦
許久沒碰了突然看到會有一種親切感☺ 喔呵呵~(感覺是老人家的行為哈)➲ 數學常用符號部份整理如下:括號()小括號〔〕中括號{}大括號計算符號: + ...
- 3運算式
運算符號 · ※與國小數學中所學到的規則相同,先乘除後加減,有括號則先做。 · 運算符號的優先順序與結合律.
- 4關於符號計算
除了用PTC Mathcad 執行數值計算之外,您也可以在包含變數或數學符號的符號運算式上執行運算。PTC Mathcad 會以符號形式傳回結果。 解題指令群中不支援函數的符號計算 ...
- 5計算符號_百度百科
計算符號,拼音是jì suàn fú hào,是計算數學時所用的符號,計算符號有加號、減號、乘號、除號。