算数运算符
| 运算符 |
描述 |
实例 |
| + |
加号 |
A + B 运算结果为 30 |
| - |
减号 |
A - B 运算结果为 -10 |
| * |
乘号 |
A * B 运算结果为 200 |
| / |
除号 |
B / A 运算结果为 2 |
| % |
取余 |
B % A 运算结果为 0 |
object Test { def main(args: Array[String]) { var a = 10; var b = 20; var c = 25; var d = 25; println("a + b = " + (a + b) ); println("a - b = " + (a - b) ); println("a * b = " + (a * b) ); println("b / a = " + (b / a) ); println("b % a = " + (b % a) ); println("c % a = " + (c % a) ); }}
关系运算符
| 运算符 |
描述 |
实例 |
| == |
等于 |
(A == B) 运算结果为 false |
| != |
不等于 |
(A != B) 运算结果为 true |
| > |
大于 |
(A > B) 运算结果为 false |
| < |
小于 |
(A < B) 运算结果为 true |
| >= |
大于等于 |
(A >= B) 运算结果为 false |
| <= |
小于等于 |
(A <= B) 运算结果为 true |
object Test { def main(args: Array[String]) { var a = 10; var b = 20; println("a == b = " + (a == b) ); println("a != b = " + (a != b) ); println("a > b = " + (a > b) ); println("a < b = " + (a < b) ); println("b >= a = " + (b >= a) ); println("b <= a = " + (b <= a) ); }}
逻辑运算符
| 运算符 |
描述 |
实例 |
| && |
逻辑与 |
(A && B) 运算结果为 false |
| || |
逻辑或 |
(A || B) 运算结果为 true |
| ! |
逻辑非 |
!(A && B) 运算结果为 true |
object Test { def main(args: Array[String]) { var a = true; var b = false; println("a && b = " + (a&&b) ); println("a || b = " + (a||b) ); println("!(a && b) = " + !(a && b) ); }}
位运算符
| 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 |
赋值运算符
| 运算符 |
描述 |
实例 |
| & |
按位与运算符 |
(a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | |
按位或运算符 |
(a | b) 输出结果 61 ,二进制解释: 0011 1101 |
| ^ |
按位异或运算符 |
(a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
| ~ |
按位取反运算符 |
(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
| << |
左移动运算符 |
a << 2 输出结果 240 ,二进制解释: 1111 0000 |
| >> |
右移动运算符 |
a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
| >>> |
无符号右移 |
A >>>2 输出结果 15, 二进制解释: 0000 1111 |
object Test { def main(args: Array[String]) { var a = 60; /* 60 = 0011 1100 */ var b = 13; /* 13 = 0000 1101 */ var c = 0; c = a & b; /* 12 = 0000 1100 */ println("a & b = " + c ); c = a | b; /* 61 = 0011 1101 */ println("a | b = " + c ); c = a ^ b; /* 49 = 0011 0001 */ println("a ^ b = " + c ); c = ~a; /* -61 = 1100 0011 */ println("~a = " + c ); c = a << 2; /* 240 = 1111 0000 */ println("a << 2 = " + c ); c = a >> 2; /* 15 = 1111 */ println("a >> 2 = " + c ); c = a >>> 2; /* 15 = 0000 1111 */ println("a >>> 2 = " + c ); }}