Просто чтобы прояснить, вы хэшируете 64-битное значение в 32-битное.Кроме того, хорошая хеш-функция будет производить равномерное распределение значений (по понятным причинам!).
Вы можете игнорировать половину битов, но это даст вам половину возможных значений, создающих одно значение.Итак, вы хотите как-то учесть все биты при создании хеш-кода.
Варианты смешивания битов: AND, OR, XOR.Если вы подумаете об этом, AND и OR вообще не будут производить равномерное распределение значений.XOR делает, так что это единственный хороший выбор.