rust运算

不同类型不能放在一起运算。如果非要计算,必须先强转成一个类型再运算。

一 、数字运算

(一)算术运算

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
相关推荐
superman超哥17 小时前
Rust 可变借用的独占性要求:排他访问的编译期保证
开发语言·后端·rust·rust可变借用·独占性要求·排他访问·编译期保证
superman超哥17 小时前
Rust 引用的作用域与Non-Lexical Lifetimes(NLL):生命周期的精确革命
开发语言·后端·rust·生命周期·编程语言·rust引用的作用域·rust nll
古城小栈18 小时前
Rust 生命周期,三巨头之一
开发语言·后端·rust
木木木一20 小时前
Rust学习记录--C3 Rust通用编程概念
开发语言·学习·rust
superman超哥21 小时前
Rust 所有权与零成本抽象的关系:编译期优化的完美结合
开发语言·后端·rust·rust所有权·rust零成本抽象·编译期优化
古城小栈21 小时前
Rust 是面向对象的语言吗?
rust
superman超哥1 天前
Rust 所有权系统如何防止双重释放:编译期的内存安全保证
开发语言·后端·rust·编程语言·内存安全·rust所有权·双重释放
superman超哥1 天前
Rust Drop Trait 与资源清理机制:确定性析构的优雅实现
开发语言·后端·rust·编程语言·rust drop trait·资源清理机制·确定性析构
superman超哥1 天前
Rust 部分移动(Partial Move)的使用场景:精细化所有权管理的艺术
开发语言·后端·rust·所有权管理·rust部分移动·partial move
superman超哥1 天前
Rust 借用检查器的工作原理:编译期内存安全的守护者
开发语言·后端·rust·编程语言·rust借用检查器·编译期内存安全·借用检查器