位掩码
位掩码(BitMask)是 “位” (Bit) 和 “掩码” (Mask) 的组合词。“位”指代着二进制数据当中的二进制位,而“掩码”指的是一串用于目标数据进行按位操作的二进制数字。组合起来就是“用一串二进制数字(掩码)去操作另一串二进制数字”的意思。 掩码就是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位,最终得到一个合理的需求。 场景应用 权限 假设系统中有4中权限: 增删改查,使用位运算来表示权限,定义四个变量如下 Insert = 1 // 0001 Delete = 2 // 0010 Update = 4 // 0100 Select = 8 // 1000 假设初始权限为 0000 如果想给用户增加权限,则使用 | 或运算 给用户增加 Insert 权限 0000 | 0001 = 0001 给用户同时增加 Insert 和 Delete 权限 0000 | 0001 | 0010 = 0011 此时获取到的 0011 十进制为 3 则怎么知道用户拥有哪些权限呢? 只需要采用 & 运算 是否有 Insert 权限 b0011 & b0001 = b0001 = 1 有权限 是否有 Delete 权限 b0011 & b0010 = b0010 = 2 有权限 是否有 Update 权限 b0011 & b0100 = b0000 = 0 无权限 是否有 Select 权限 b0011 & b1000 = b0000 = 0 无权限 删除权限 如用户有 Insert 和 Delete 权限,现在需要删除 Insert 权限 ...