Я не знаю, как исчерпывающе протестировать следующее без грубой форсировки, поэтому я просто спрошу, верна ли концепция.
У меня есть две 64-битные переменные типа unsigned int, которые используются обекак битовые поля.Обе переменные могут иметь до 60 бит, от 1 до 60.Может быть установлено любое количество из 60 битов, и они могут быть установлены в любом порядке.биты 61, 62 и 63 не устанавливаются ни в одну из переменных.Кроме того, одна и только одна из переменных всегда имеет установленный 64-й бит.
Учитывая приведенное выше описание, я прав, полагая, что хэш будет уникальным для всех возможных комбинацийполе1 и поле2?:
uint64_t field1 = ...;
uint64_t field2 = ...;
uint64_t hash = field1 + field2;