Объясните почему return (int a & int b) != 0; в булевом методе возвращает тру или фолс. В зависимости от входных данных? Дело в амперсанде или в !=