Условие
resetFlag(int number, int flagPos) —
устанавливает значение "0" биту под индексом flagPos
числа number и возвращает новое значение.
Почему такой код валидатор не принимает?
public static int resetFlag(int number, int flagPos) {
//напишите тут ваш код
return number ^ (1<<flagPos);
}
Так как Подразумевается что на месте бита, номер которого является переменной "flagPos" находится единица, то его значение, совершенно точно, меняется на ноль.
Авторское решение:
public static int resetFlag(int number, int flagPos) {
return number & ~(1 << flagPos);
}