Страницы

Поиск по вопросам

вторник, 30 октября 2018 г.

Использование оператора '&'

В HashMap есть метод
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { ...}
В котором выполняется проверка на уникальность ключа. Для определения уникальности используется сравнение чисел оператором &. Соответственно вопрос:
Что именно выполняет оператор & между двумя числами?
12 & 0 //0 12 & 5 //4 12 & 12 //12 12 & 150 //4 15 & 67888795; //11


Ответ

Это побитовый оператор AND
00101010 42 & 00001111 15 -------------- 00001010 10
Два числа представляются в двоичном виде. Затем оператором & сравниваются каждый бит двух чисел. Как работает оператор AND: если оба числа равны 1, то результат 1, если только один равен единице или оба нуля, то результат 0. Затем обратно из двоичного вида преобразуем в десятичный и получается обычное число.

Комментариев нет:

Отправить комментарий