Erlang具有以下类型的运算符-
- 算术运算符
- 关系运算符
- 逻辑运算符
- 按位运算符
算术运算符
Erlang语言支持普通的算术运算符,就像任何一种语言一样,以下是Erlang中可用的算术运算符。
运算符 | 描述 | 示例 |
---|---|---|
+ | 加 | 1 + 2=3 |
- | 减 | 1 - 2=-1 |
* | 乘 | 2 * 2=4 |
/ | 除 | 2/2=1 |
rem | 余数 | 3 rem 2=1 |
div |
整数除法 |
3 div 2=1 |
-module(helloLearnfk). -export([start/0]). start() -> X = 40, Y = 50, Res1 = X + Y, Res2 = X - Y, Res3 = X * Y, Res4 = X / Y, Res5 = X div Y, Res6 = X rem Y, io:fwrite("~w~n",[Res1]), io:fwrite("~w~n",[Res2]), io:fwrite("~w~n",[Res3]), io:fwrite("~w~n",[Res4]), io:fwrite("~w~n",[Res5]), io:fwrite("~w~n",[Res6]).
上面程序的输出将是-
90 -10 2000 0.8 0 40
关系运算符
关系运算符允许比较对象。 以下是Erlang中可用的关系运算符。
运算符 | 描述 | 示例 |
---|---|---|
== |
等于 |
2=2=true |
/= |
不等于 |
3 /= 2=true |
< | 小于 | 2 < 3=true |
=< | 小于或等于 | 2 =<3=true |
> | 大于 | > 2=true |
>= | 大于或等于 | 3 >= 2=true |
-module(helloLearnfk). -export([start/0]). start() -> io:fwrite("~w~n",[3==2]), io:fwrite("~w~n",[3/=2]), io:fwrite("~w~n",[3<2]), io:fwrite("~w~n",[3=<2]), io:fwrite("~w~n",[3>2]), io:fwrite("~w~n",[3>=2]).
上面程序的输出将是-
false true false false true true
逻辑运算符
这些逻辑运算符用于布尔表达式。 以下是Erlang中可用的逻辑运算符。
运算符 | 描述 | 示例 |
---|---|---|
or | 或 | true or false=true |
and | 和 | true and false=flase; |
not | 非 | not false=true |
xor | 异 | true xor false=true |
-module(helloLearnfk). -export([start/0]). start() -> io:fwrite("~w~n",[true or false]), io:fwrite("~w~n",[true and false]), io:fwrite("~w~n",[true xor false]), io:fwrite("~w~n",[not false]).
上面程序的输出将是-
true false true true
按位运算符
Erlang提供了四个按位运算符。以下是Erlang中可用的按位运算符。
Sr.No. | 运算符&描述 |
---|---|
1 |
band 这是按位"and"运算符 |
2 |
bor 这是按位"or"运算符 |
3 |
bxor 这是按位"xor"或"异或"运算符 |
4 |
bnot 这是按位取反运算符 |
以下是展示这些运算符的真值表-
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
-module(helloLearnfk). -export([start/0]). start() -> io:fwrite("~w~n",[00111100 band 00001101]), io:fwrite("~w~n",[00111100 bxor 00111100]), io:fwrite("~w~n",[bnot 00111100]), io:fwrite("~w~n",[00111100 bor 00111100]).
上面程序的输出将是-
76 0 -111101 111100