• 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符

算数运算符

运算符 描述 实例
+ 加号 A + B 运算结果为 30
- 减号 A - B 运算结果为 -10
* 乘号 A * B 运算结果为 200
/ 除号 B / A 运算结果为 2
% 取余 B % A 运算结果为 0
  1. object Test {
  2. def main(args: Array[String]) {
  3. var a = 10;
  4. var b = 20;
  5. var c = 25;
  6. var d = 25;
  7. println("a + b = " + (a + b) );
  8. println("a - b = " + (a - b) );
  9. println("a * b = " + (a * b) );
  10. println("b / a = " + (b / a) );
  11. println("b % a = " + (b % a) );
  12. println("c % a = " + (c % a) );
  13. }
  14. }

关系运算符

运算符 描述 实例
== 等于 (A == B) 运算结果为 false
!= 不等于 (A != B) 运算结果为 true
> 大于 (A > B) 运算结果为 false
< 小于 (A < B) 运算结果为 true
>= 大于等于 (A >= B) 运算结果为 false
<= 小于等于 (A <= B) 运算结果为 true
  1. object Test {
  2. def main(args: Array[String]) {
  3. var a = 10;
  4. var b = 20;
  5. println("a == b = " + (a == b) );
  6. println("a != b = " + (a != b) );
  7. println("a > b = " + (a > b) );
  8. println("a < b = " + (a < b) );
  9. println("b >= a = " + (b >= a) );
  10. println("b <= a = " + (b <= a) );
  11. }
  12. }

逻辑运算符

运算符 描述 实例
&& 逻辑与 (A && B) 运算结果为 false
|| 逻辑或 (A || B) 运算结果为 true
! 逻辑非 !(A && B) 运算结果为 true
  1. object Test {
  2. def main(args: Array[String]) {
  3. var a = true;
  4. var b = false;
  5. println("a && b = " + (a&&b) );
  6. println("a || b = " + (a||b) );
  7. println("!(a && b) = " + !(a && b) );
  8. }
  9. }

位运算符

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
  1. object Test {
  2. def main(args: Array[String]) {
  3. var a = 60; /* 60 = 0011 1100 */
  4. var b = 13; /* 13 = 0000 1101 */
  5. var c = 0;
  6. c = a & b; /* 12 = 0000 1100 */
  7. println("a & b = " + c );
  8. c = a | b; /* 61 = 0011 1101 */
  9. println("a | b = " + c );
  10. c = a ^ b; /* 49 = 0011 0001 */
  11. println("a ^ b = " + c );
  12. c = ~a; /* -61 = 1100 0011 */
  13. println("~a = " + c );
  14. c = a << 2; /* 240 = 1111 0000 */
  15. println("a << 2 = " + c );
  16. c = a >> 2; /* 15 = 1111 */
  17. println("a >> 2 = " + c );
  18. c = a >>> 2; /* 15 = 0000 1111 */
  19. println("a >>> 2 = " + c );
  20. }
  21. }