位运算
-
一个数字除以 2
println!("result: {}", 11 >> 2);
-
一个数字乘以 2
println!("result: {}", 11 << 2);
-
快速球 2 的 n 次幂
println!("result: {}", 1 << 10);
-
判断奇偶
println!("result: {}", 12 & 1 == 0);
-
交换两个元素
let (mut a, mut b) = (10, 20); a ^= b; b ^= a; a ^= b;
-
快速求余(仅当除数是 2 的 n 次幂)
let (c, x) = (1 << 10, 676433); println!("r1: {}, r2: {}", x % c, x & (c - 1));
-
获取某个二进制的第 k 位
let x = 190; println!("res: {}", x >> 3 & 1);
-
将二进制的第 k 位设置为 1
let x = 190; println!("res: {}", x | (1 << 6));