不同类型不能放在一起运算。如果非要计算,必须先强转成一个类型再运算。
一 、数字运算
(一)算术运算
a = 10且b = 5
名称 | 运算符 | 范例 |
---|---|---|
加 | + | a+b的结果为15 |
减 | - | a-b的结果为5 |
乘 | * | a*b的结果为50 |
除 | / | a / b的结果为2 |
求余 | % | a % b的结果为0 |
Rust语言不支持自增自减运算符 ++ 和 --
整数类型的最小值
assert_eq!(i32::MIN, -2147483648);
整数类型的最大值
assert_eq!(i32::MAX, 2147483647);
整数类型的位数
assert_eq!(i32::BITS, 32);
(二)位运算
A = 2且变量B = 3。
A的二进制格式为
0 0 0 0 0 0 1 0
B的二进制位格式为
0 0 0 0 0 0 1 1
名字 | 运算符 | 说明 | 范例 |
---|---|---|---|
位与 | & | 相同位都是1则返回1否则返回0 | (A & B) 结果为 2 |
位或 | | | 相同位只要有一个是1则返回1否则返回0 | (A | B) 结果为3 |
异或 | ^ | 相同位不相同则返回1否则返回0 | (A ^ B) 结果为1 |
位非 | ! | 把位中的1换成0,0换成1 | (!B) 结果 -4 |
左移 | << | 操作数中的所有位向左移动指定位数,右边的位补0 | (A << 1) 结果为4 |
右移 | >> | 操作数中的所有位向右移动指定位数,左边的位补0 | (A >> 1) 结果为1 |
(三)布尔运算
1.比较运算
A = 10且B = 20
名称 | 运算符 | 说明 | 范例 |
---|---|---|---|
大于 | > | 如果左操作数大于右操作数则返回true否则返回false | (A > B) 返回false |
小于 | < | 如果左操作数小于于右操作数则返回true否则返回false | (A < B) 返回true |
大于等于 | >= | 如果左操作数大于或等于右操作数则返回true否则返回false | (A >= B) 返回false |
小于等于 | <= | 如果左操作数小于或等于右操作数则返回true否则返回false | (A <= B) 返回true |
等于 | == | 如果左操作数等于右操作数则返回true否则返回false | (A == B) 返回true |
不等于 | != | 如果左操作数不等于右操作数则返回true否则返回false | (A != B) 返回false |
2.逻辑运算
A = 10且B = 20
名称 | 运算符 | 说明 | 范例 |
---|---|---|---|
逻辑与 | && | 两边的条件表达式都为真则返回true否则返回false | (A > 10 && B > 10) 的结果为 false |
逻辑或 | || | 两边的条件表达式只要有一个为真则返回true否则返回false | (A > 10 || B >10) 的结果为 true |
逻辑非 | ! | 如果表达式为真则返回false否则返回true | !(A >10) 的结果为 true |