我试图找到所有没有“interface”修饰符的“类”,所以我写道:
SELECT * FROM classes WHERE modifiers & ~0x80
其中
0x80
显然是接口修饰符。这确实过滤掉了“接口”,但也排除了没有标志的类。所以我不得不修改为:SELECT * FROM classes WHERE modifiers=0 OR modifiers & ~0x80
这是正常的做法吗?看来很有趣,我得做两次检查。我的逻辑可能有点生疏。
最佳答案
你选择的东西,除了第8位以外的任何一位都是1。只需测试位是否显式为0:where (modifiers & 0x80) = 0