检查标记位 java
2022-08-31 20:00:55
我有一个标志位的问题。我有一个变量来保存标志。首先,我为该变量设置了一些标志。稍后,我需要检查该变量中设置了多少个标志。但我不知道该怎么做。int
我有一个标志位的问题。我有一个变量来保存标志。首先,我为该变量设置了一些标志。稍后,我需要检查该变量中设置了多少个标志。但我不知道该怎么做。int
要检查是否设置了位值,请执行以下操作:
int value = VALUE_TO_CHECK | OTHER_VALUE_TO_CHECK;
if ((value & VALUE_TO_CHECK) == VALUE_TO_CHECK)
{
// do something--it was set
}
if ((value & OTHER_VALUE_TO_CHECK) == OTHER_VALUE_TO_CHECK)
{
// also set (if it gets in here, then it was defined in
// value, but it does not guarantee that it was set with
// OR without other values. To guarantee it's only this
// value just use == without bitwise logic)
}
请务必注意,不应将选中的值设置为 0,除非它表示“全部”或“无”(并且不要使用按位逻辑进行比较;只需使用 ),因为 any 始终为 0。value == 0
value & 0