﻿# V6120\. The result of the '&' operator is '0' because one of the operands is '0'\.

The analyzer has detected that there is a bitwise 'AND' \(&\) operation with an operand equal to 0\. A code fragment may contain incorrect operator or operand\.

Look at an example:

```cpp
public class TypeAttribute {
  private static final int NOT_PUBLIC = 0x0,
  private static final int PUBLIC = 0x1,
  private static final int NESTED_PUBLIC = 0x2,
  private static final int NESTED_PRIVATE = 0x3

  public static boolean isNotPublic(int type) {
    return (type & NOT_PUBLIC) == NOT_PUBLIC;
  }
}
```

The 'isNotPublic' method checks if the argument has the 'NOT\_PUBLIC' flag\. 

Such a check makes no sense since the 'NOT\_PUBLIC' flag has a zero value, which means using this flag as an operand of the '&' operator always results in a zero value\. Thus, in the presented implementation, we always get the true condition\.

The correct implementation of the check may look as follows:

```cpp
public static boolean isNotPublic(int type) {
  return type == NOT_PUBLIC;
}
```

The analyzer also issues a warning if an operand equal to '0' is used with the '&\=' operator\. Such code looks questionable, because if one of the operands is '0', the result of the expression is also '0'\.