运算符

有其他编程语言基础的可以跳过本章节

算术运算符

  1. var a = 20;
  2. var b = 10;
  3. var c1 = a + b; //a加b的结果赋值给c1,c1为30
  4. var c2 = a - b; //a减b的结果赋值给c2,c2为10
  5. var c3 = a * b; //a乘以b的结果赋值给c3,c3为200
  6. var c4 = a / b; //a除以b的结果赋值给c4,c4为2
  7. var c5 = a % b; //a除以b的余数赋值给c5,c5为0
  8. print c1;
  9. print c2;
  10. print c3;
  11. print c4;
  12. print c5;

结果:

  1. 30
  2. -10
  3. 200
  4. 2
  5. 0

注意:CBrother中整数除以整数只能取到整数,如果要得到小数部分,把其中一个数改成浮点数即可。

  1. var a = 20;
  2. var b = 10;
  3. var v1 = b / a;
  4. var v2 = b / FLOAT(a);
  5. print v1;
  6. print v2;

结果:

  1. 0
  2. 0.500000

注意:CBrother中加号(+)可以连接不同的类型。相加的两个值如果有字符串,结果为字符串。

  1. var text1 = "this is text1";
  2. var text2 = "I'm text2";
  3. var vint = 10;
  4. var vfloat = 10.0;
  5. var res = text1 + text2;
  6. print res;
  7. res = text1 + vint;
  8. print res;
  9. res = text2 + " ^_^ " + vfloat;
  10. print res;

结果:

  1. this is text1I'm text2
  2. this is text110
  3. I'm text2 ^_^ 10.000000

+号左右值和结果,第一列为左值:

+stringfloatintuintlong其他
string string string string string string null
float string float float float float null
int string float int int long null
uint string float uint uint long null
long string float long long long null
其他 null null null null null null

-号左右值和结果,第一列为左值:

-floatintuintlong其他
float float float float float null
int float int int int null
uint float uint uint uint null
long float long long long null
其他 null null null null null

*号左右值和结果,第一列为左值:

*floatintuintlong其他
float float float float float null
int float int int long null
uint float int uint long null
long float long long long null
其他 null null null null null

/号左右值和结果,第一列为左值:

/floatintuintlong其他
float float float float float null
int float int int int null
uint float int uint int null
long float long long long null
其他 null null null null null

赋值运算符

  1. var c1 = 20;
  2. var c2 = 20;
  3. var c3 = 20;
  4. var c4 = 20;
  5. var c5 = 20;
  6. var b = 10;
  7. var c1 += b; //等价于c1 = c1 + b,c1为30
  8. var c2 -= b; //等价于c2 = c2 - b,c2为10
  9. var c3 *= b; //等价于c3 = c3 * b,c3为200
  10. var c4 /= b; //等价于c4 = c4 / b,c4为2
  11. var c5 %= b; //等价于c5 = c5 % b,c5为0
  12. print c1;
  13. print c2;
  14. print c3;
  15. print c4;
  16. print c5;

结果:

  1. 30
  2. -10
  3. 200
  4. 2
  5. 0

比较运算符

比较运算符在逻辑语句中使用,以测定变量或值是否相等,给定a=10,下面的表格解释了比较运算符:

运算符描述例子
== 等于 a==8 为 false
!= 不等于 a!=8 为 true
> 大于 a>8 为 true
< 小于 a<8 为 false
>= 大于或等于 a>=8 为 true
<= 小于或等于 a<=8 为 false

可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动:

  1. var a = 10;
  2. if(a > 9)
  3. print "a > 9 is true";

输出结果为

  1. a > 9 is true

逻辑运算符

给定 x=6 以及 y=3,下表解释了逻辑运算符:

运算符描述例子
&& 前后同时为true那么结果为true (x < 10 && y > 1) 为 true
|| 前后有一方为true那么结果为true (x==5 || y==5) 为 false
! 后面跟随的条件取反 !(x==y) 为 true

位运算符

位运算符是把数字看作二进制来进行计算的。

运算符描述例子
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 0b101 & 0b011 结果为 0b001
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 0b101 & 0b011 结果为 0b111
^ 按位异或运算符:当两对应的二进位相异时,结果为1 0b101 & 0b011 结果为 0b110
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。 ~0b101 结果为 0b010
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 ob001 << 2 结果为 0b100
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 ob010 >> 1 结果为 0b001

运算符优先级

同级别运算符从左到右依次运算

运算符描述
() [] 括号优先级高于一切算数运算符
- ~ ! 负号,按位取反,逻辑非
/ * % 除,乘,余数
+ - 加,减
<< >> 左移,右移
> >= < <= == != 比较运算符
& ^ | 按位与,按位异或 按位或
&& || 逻辑与,逻辑或
= += -= /= *= %= 赋值运算符