Rust - 位运算符
Assume variable A = 2 and B = 3.
| Sr.No | 运算符 | 描述 | 示例 |
|---|---|---|---|
| 1 | & (按位与) | 它对其整数参数的每一位执行布尔 AND 运算。 | (A & B)是2 |
| 2 | | (按位或) | 它对其整数参数的每一位执行布尔或运算。 | (A | B) 为 3 |
| 3 | ^ (按位异或) | 它对其整数参数的每一位执行布尔异或运算。 异或意味着操作数一为真或操作数二为真,但不能两者都为真。 | (A ^ B) 为 1 |
| 4 | ! (按位非) | 它是一个一元运算符,通过反转操作数中的所有位进行运算。 | (!B) 为 -4 |
| 5 | << (左移) | 它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。 新的位用零填充。 将值左移一位相当于乘以 2,左移两位相当于乘以 4,依此类推。 | (A << 1) 为 4 |
| 6 | >> (右移) | 二进制右移运算符。 左操作数的值向右移动右操作数指定的位数。 | (A >> 1) 为 1 |
| 7 | >>> (右移为零) | 该运算符与 >> 运算符类似,只不过向左移动的位始终为零。 | (A >>> 1) 为 1 |
示例
fn main() {
let a:i32 = 2; // Bit presentation 10
let b:i32 = 3; // Bit presentation 11
let mut result:i32;
result = a & b;
println!("(a & b) => {} ",result);
result = a | b;
println!("(a | b) => {} ",result) ;
result = a ^ b;
println!("(a ^ b) => {} ",result);
result = !b;
println!("(!b) => {} ",result);
result = a << b;
println!("(a << b) => {}",result);
result = a >> b;
println!("(a >> b) => {}",result);
}
输出
(a & b) => 2 (a | b) => 3 (a ^ b) => 1 (!b) => -4 (a << b) => 16 (a >> b) => 0

