【&】位与运算符【|】位或运算符之权限控制算法
【&】位与运算符:
按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
如:
00001001
&
00000101
=
00000001
【|】位或运算符:
按位或运算符“|”是双目运算符。 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
00001001
|
00000101
=
00001101
获取用户权限时,使用【|】运算符得到用户权限值,比较用户权限时使用【&】运算符比较用户是否拥有摸个权限。
如:
用户A拥有权限:
权限ID | 权限值 | 权限名称 |
1 | 1 | 查询 |
2 | 2 | 新增 |
3 | 4 | 删除 |
4 | 8 | 更新 |
用户A的权限值=1|2|4|8=15
0001
|0010
|0100
|1000
=1111
判断用户是否拥有删除权限 15&4!=0
运算结果
1111
&0100
=0100
0100=4不等于0,表示有权限。
若用户权限值=用户A的权限值=1|2|8=11
0001
|0010
|1000
=1011
判断用户是否拥有删除权限 11&4!=0
运算结果
1011
&0100
=0000
0000=0等于0,表示没有权限。
查询权限直接判断用户A的权限值==0
这样只要用户拥有任何权限都可以查询单据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异