在 Rust编程教程 中,位运算是一个基础但非常重要的概念。无论你是系统编程的新手,还是希望深入理解底层操作的开发者,掌握 Rust位运算符 都能帮助你写出更高效、更紧凑的代码。
本文将用通俗易懂的方式,带你从零开始学习 Rust位操作 的核心知识,包括各种位运算符的含义、使用场景以及实际代码示例。即使你是编程小白,也能轻松上手!

位运算是直接对整数在内存中的二进制表示进行操作。例如,数字 5 在二进制中是 101,而 3 是 011。通过位运算符,我们可以对这些二进制位进行与、或、非、异或、左移、右移等操作。
Rust 提供了以下六种位运算符:
&:按位与(AND)|:按位或(OR)^:按位异或(XOR)!:按位取反(NOT)<<:左移(Left Shift)>>:右移(Right Shift)只有当两个对应位都为 1 时,结果位才为 1。
fn main() { let a = 5; // 二进制: 101 let b = 3; // 二进制: 011 let result = a & b; // 001 → 十进制 1 println!("{} & {} = {}", a, b, result); // 输出: 5 & 3 = 1}只要有一个对应位为 1,结果位就为 1。
fn main() { let a = 5; // 101 let b = 3; // 011 let result = a | b; // 111 → 十进制 7 println!("{} | {} = {}", a, b, result); // 输出: 5 | 3 = 7}当两个对应位不同时,结果为 1;相同时为 0。
fn main() { let a = 5; // 101 let b = 3; // 011 let result = a ^ b; // 110 → 十进制 6 println!("{} ^ {} = {}", a, b, result); // 输出: 5 ^ 3 = 6}将每一位取反(0 变 1,1 变 0)。注意:由于 Rust 使用补码表示负数,结果可能看起来“奇怪”。
fn main() { let a = 5; // 二进制: ...00000101 let result = !a; // ...11111010(补码表示 -6) println!("!{} = {}", a, result); // 输出: !5 = -6}将二进制位向左移动指定位置,右侧补 0。相当于乘以 2 的 n 次方。
fn main() { let a = 3; // 011 let result = a << 2; // 01100 → 十进制 12 println!("{} << 2 = {}", a, result); // 输出: 3 << 2 = 12}将二进制位向右移动指定位置。对于有符号整数,高位补符号位(算术右移);无符号则补 0。
fn main() { let a: i32 = 12; // 1100 let result = a >> 2; // 0011 → 十进制 3 println!("{} >> 2 = {}", a, result); // 输出: 12 >> 2 = 3}// 对于负数(补码表示)let b: i32 = -8; // ...11111000let result2 = b >> 1; // ...11111100 → -4println!("{} >> 1 = {}", b, result2); // 输出: -8 >> 1 = -4了解了 Rust按位运算 的基本操作后,来看看它们在实际开发中的用途:
i8, u32, isize 等)。通过本篇 Rust编程教程,你应该已经掌握了 Rust位运算符 的基本用法和实际应用场景。位操作虽然底层,但在性能敏感或资源受限的场景中非常有用。多加练习,你就能像老手一样灵活运用 Rust位操作 和 Rust按位运算 技巧!
现在,打开你的编辑器,动手试试这些例子吧!
本文由主机测评网于2025-12-06发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123933.html