位运算符要点
- 按位与:对应位都为 1 才得 1,常用于权限校验
- 按位或:对应位有一个 1 就得 1,常用于叠加权限
- 按位异或:对应位不同得 1,常用于翻转某些位
- 按位取反:所有位反转,结果是其补码形式
- 左移一位相当于乘 2,右移一位相当于整除 2
- 位运算操作数会先转成二进制整数再计算
位运算符示例
SELECT 3 & 5; -- 1(按位与)
SELECT 3 | 5; -- 7(按位或)
SELECT 3 ^ 5; -- 6(按位异或)
SELECT ~0; -- 取反后的大整数
-- 左移一位等价于乘 2,右移一位等价于整除 2
SELECT 6 经左移一位; -- 概念上等于 12
SELECT 6 经右移一位; -- 概念上等于 3
避坑提醒:用整数位当开关时,检查『第 n 位是否为 1』可将该位对应的掩码与数值做按位与,结果非 0 即表示该位已开启。