我有以下代码:
int SOME_MASK = 0x0000ffff;
int value = /* some value */;
int something = SOME_MASK & value;
// WHY IS "something" guaranteed to be non-negative ?
if (something != NEGATIVE_CONSTANT) {
// do something here....
}
我不断收到FindBugs分析警告:
正确性 - 非负值与负常数的错误比较 此代码将保证为非负的值与负常数进行比较。
将按位与结果与负常数进行比较的行会弹出警告。
我不确定为什么按位与结果保证为非负数?总是这样吗?