Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我一直在运行(别人的)这样的代码
Case When (variable & (2|4|8|16)>0) Then ... WHEN (variable & (1|32)>0 Then ... ... End
variable我认为这里发生的事情是它正在测试变量的 2^1、2^2、2^3 或 2^4 位置是否有 1 或 0 。这是正确的吗?无论哪种方式,我仍然不清楚为什么这个表达式是这样写的。我无法找到有关此逻辑的任何文档,主要是因为我不知道该怎么称呼它。
variable
没错,“管道”符号|对应于按位 OR 运算符,而与号&对应于按位 AND 运算符(至少在某些数据库中)。
|
&
他们正在使用那些按位运算符检查位。他们这样做的最可能原因是“提高可读性”。例如,在写入时更容易查看正在检查哪些位
2|4|8|16 -- rather than 30 1|32 -- rather than 33