我在我的应用程序中找到了一个MySQL查询,我真的不明白。它很长,这只是它的一部分,我不明白:
WHERE ( id & 0xff = 0 ) OR ( ( id >= 3000 ) AND ( id & 0xff != 0xff ) )
这个'0xff'究竟是什么? Threre在此表中没有列'0xff'。
答案 0 :(得分:2)
0xff
二进制值为00000000000000000000000011111111 (under the 32-bit integer)
如果你使用bitwise AND
进行0xff
,它只会提供last 8 bits
中的值,其他所有内容都会消失(因为1 & 0 = 0
和0 & 0 = 0
)
id & 0xff = 0
这会检查last 8 bits are 00000000
;
id & 0xff != 0xff
这会检查last 8 bits != 11111111
;