运算符
有其他编程语言基础的可以跳过本章节
算术运算符
var a = 20;
var b = 10;
var c1 = a + b; //a加b的结果赋值给c1,c1为30
var c2 = a - b; //a减b的结果赋值给c2,c2为10
var c3 = a * b; //a乘以b的结果赋值给c3,c3为200
var c4 = a / b; //a除以b的结果赋值给c4,c4为2
var c5 = a % b; //a除以b的余数赋值给c5,c5为0
print c1;
print c2;
print c3;
print c4;
print c5;
结果:
30
-10
200
2
0
注意:CBrother中整数除以整数只能取到整数,如果要得到小数部分,把其中一个数改成浮点数即可。
var a = 20;
var b = 10;
var v1 = b / a;
var v2 = b / FLOAT(a);
print v1;
print v2;
结果:
0
0.500000
注意:CBrother中加号(+)可以连接不同的类型。相加的两个值如果有字符串,结果为字符串。
var text1 = "this is text1";
var text2 = "I'm text2";
var vint = 10;
var vfloat = 10.0;
var res = text1 + text2;
print res;
res = text1 + vint;
print res;
res = text2 + " ^_^ " + vfloat;
print res;
结果:
this is text1I'm text2
this is text110
I'm text2 ^_^ 10.000000
+号左右值和结果,第一列为左值:
+ | string | float | int | uint | long | 其他 |
---|---|---|---|---|---|---|
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 |
-号左右值和结果,第一列为左值:
- | float | int | uint | long | 其他 |
---|---|---|---|---|---|
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 |
*号左右值和结果,第一列为左值:
* | float | int | uint | long | 其他 |
---|---|---|---|---|---|
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 |
/号左右值和结果,第一列为左值:
/ | float | int | uint | long | 其他 |
---|---|---|---|---|---|
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 |
赋值运算符
var c1 = 20;
var c2 = 20;
var c3 = 20;
var c4 = 20;
var c5 = 20;
var b = 10;
var c1 += b; //等价于c1 = c1 + b,c1为30
var c2 -= b; //等价于c2 = c2 - b,c2为10
var c3 *= b; //等价于c3 = c3 * b,c3为200
var c4 /= b; //等价于c4 = c4 / b,c4为2
var c5 %= b; //等价于c5 = c5 % b,c5为0
print c1;
print c2;
print c3;
print c4;
print c5;
结果:
30
-10
200
2
0
比较运算符
比较运算符在逻辑语句中使用,以测定变量或值是否相等,给定a=10
,下面的表格解释了比较运算符:
运算符 | 描述 | 例子 |
---|---|---|
== | 等于 | a==8 为 false |
!= | 不等于 | a!=8 为 true |
> | 大于 | a>8 为 true |
< | 小于 | a<8 为 false |
>= | 大于或等于 | a>=8 为 true |
<= | 小于或等于 | a<=8 为 false |
可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动:
var a = 10;
if(a > 9)
print "a > 9 is true";
输出结果为
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 |
运算符优先级
同级别运算符从左到右依次运算
运算符 | 描述 |
---|---|
() [] | 括号优先级高于一切算数运算符 |
- ~ ! | 负号,按位取反,逻辑非 |
/ * % | 除,乘,余数 |
+ - | 加,减 |
<< >> | 左移,右移 |
> >= < <= == != | 比较运算符 |
& ^ | | 按位与,按位异或 按位或 |
&& || | 逻辑与,逻辑或 |
= += -= /= *= %= | 赋值运算符 |