1. 程式人生 > >2.7 序列程式設計-erlang算術表示式

2.7 序列程式設計-erlang算術表示式

算術表示式由以下運算子構成:

運算子 描述 型別 運算元型別 優先順序
+ X + X 單目 混合 1
- X - X 單目 混合 1
X * Y X * Y 雙目 混合 2
X / Y X / Y(浮點除法) 雙目 混合 2
X div Y X整除Y 雙目 整數 2
X rem Y X除以Y的餘數 雙目 整數 2
X band Y XY的位與 雙目 整數 2
X + Y X + Y 雙目 混合 3
X - Y X - Y 雙目 混合 3
X bor Y XY位或 雙目 整數 3
X bxor Y XY的位算數異或 雙目 整數 3
X bsl N X算數左移N 雙目 整數 3
X bsr N X右移N 雙目 整數 3

單目運算子有一個引數,雙目運算子有兩個引數。混合意味著引數即可以是integer 也可以是float。單目運算子的返回值與其引數型別相同。

雙目混合運算子(即*-+)在引數都是integer時返回型別為integer的物件,在引數至少包含一個float時返回一個float。浮點除法運算子/總是返回一個float

雙目整數運算子(即banddivremborbxorbslbsr)的引數必須是整數,其返回值也是整數。

求值順序取決於運算子的優先順序:首先計算第1優先順序的運算子,然後是第2優先順序,以此類推。括號內的表示式優先求值。

優先順序相同的運算子從左到右進行求值。比如:

A - B - C - D

其求值順序與下面的表示式一致:

(((A - B) - C) - D)