我有一个简单的问题,
在一些旧代码中,我提出了一个查询,其中包含:
WHERE !(workassignment.flags&1)
我以前从未见过查询中使用的 & 符号。
很清楚查询对我做了什么,但什么是 & 符号以及我为什么要在查询中使用它。
& 代表按位与运算(请参阅https://en.wikipedia.org/wiki/Bitwise_operation#AND)。当最右边的位workassignment.flags
设置为 1 时,按位和值 1(这是 WHERE 语句使用的)将返回 1,否则将返回 0。
所以1 & 1
= 1 和0 & 1
= 0。
这是一个“按位与”测试 - 它正在查看是否workassignment.flags
(未)设置了最低有效位。