在我的生活中,我从未使用过 Bitewise AND。我已经研究过这个运算符,但我仍然不知道它到底做了什么。所以,我会用我刚刚遇到的一些代码来问,Bitwise And 在这里做什么:
CASE
WHEN (ft.Receiver_Status & 2) = 2 THEN '3D'
WHEN (ft.Receiver_Status & 1) = 1 THEN '2D'
WHEN (ft.Receiver_Status & 32) = 32 THEN 'Invalid' -- AR 220312
ELSE 'None'
它是否强制执行相同的数据类型,例如在比较 Receiver_Status 的值之前将 smallint 转换为 int?