2015-08-15 247 views
1

我在我的應用程序中發現了一個MySQL查詢,我真的不明白。它很長,這只是它的一部分,我不明白:這是什麼MySQL查詢?

WHERE (id & 0xff = 0) OR ((id >= 3000) AND (id & 0xff != 0xff)) 

到底是什麼這個「0xFF的」? Threre在此表中沒有列'0xff'。

+1

它只是一個十六進制數字。 – Sirko

+0

謝謝你的回覆。爲什麼這是在查詢中? 0xff!= 0xff對我來說毫無意義(因爲它總是假的......)。 – Tream

+0

你見過這個嗎? http://stackoverflow.com/questions/11380062/what-does-value-0xff-do-in-java – THK

回答

2

0xff二進制值是00000000000000000000000011111111 (under the 32-bit integer)

如果你做0xff一個bitwise AND,它給了只有在last 8 bits值,所有其他咬傷消失(因爲1 & 0 = 00 & 0 = 0

id & 0xff = 0 

這將檢查last 8 bits are 00000000;

id & 0xff != 0xff 

這將檢查last 8 bits != 11111111;

+0

非常感謝! – Tream