Я копался в ха sh таблице исходного кода. И обнаружил, как происходит хеширование:
int index = (hash & 0x7FFFFFFF) % tab.length;
Я не понимаю, почему побитовое И используется здесь?
если мы превращаем 0x7FFFFFFF в двоичный файл, мы получаем = 111 1111 1111 1111 1111 1111 1111 1111
Как я знаю, побитовое И даст 1 , если первое di git, а второе = 1 Так что, если мы получим некоторый хэш-код объекта, например 2314539
, включите его в двоичную систему, а также операции и операции, мы получаем одно и то же: di git:
2314539 = 10 0011 0101 0001 0010 1011
10 0011 0101 0001 0010 1011
&
11 1111 1111 1111 1111 1111
=
10 0011 0101 0001 0010 1011
10 0011 0101 0001 0010 1011 = 2314539
Как видите, эта операция не вносит никаких изменений. Так какой тут смысл?