1
我在我的应用程序中发现了一个MySQL查询,我真的不明白。它很长,这只是它的一部分,我不明白:这是什么MySQL查询?
WHERE (id & 0xff = 0) OR ((id >= 3000) AND (id & 0xff != 0xff))
到底是什么这个“0xFF的”? Threre在此表中没有列'0xff'。
我在我的应用程序中发现了一个MySQL查询,我真的不明白。它很长,这只是它的一部分,我不明白:这是什么MySQL查询?
WHERE (id & 0xff = 0) OR ((id >= 3000) AND (id & 0xff != 0xff))
到底是什么这个“0xFF的”? Threre在此表中没有列'0xff'。
0xff
二进制值是00000000000000000000000011111111 (under the 32-bit integer)
如果你做0xff
一个bitwise AND
,它给了只有在last 8 bits
值,所有其他咬伤消失(因为1 & 0 = 0
和0 & 0 = 0
)
id & 0xff = 0
这将检查last 8 bits are 00000000
;
id & 0xff != 0xff
这将检查last 8 bits != 11111111
;
非常感谢! – Tream
它只是一个十六进制数字。 – Sirko
谢谢你的回复。为什么这是在查询中? 0xff!= 0xff对我来说毫无意义(因为它总是假的......)。 – Tream
你见过这个吗? http://stackoverflow.com/questions/11380062/what-does-value-0xff-do-in-java – THK