Из стандарта C ++ хеш-функция std :: tr1 :: hash вычисляет хеш-значения, диапазон которых составляет 64 бита (поправьте меня, если я ошибаюсь). Но из любопытства, существуют ли механизмы, которые генерируют значения хеш-функции с диапазоном, превышающим 64-битный. Мой вопрос может показаться странным, так как вся используемая нами память находится в пределах 64-битного диапазона, но я хотел бы знать, как бы мы вычислили значение хеша (скажем так) размером 80-бит?
РЕДАКТИРОВАТЬ : Мой плохой, я предполагал 64-битные реализации.
Различные хеш-функции в C ++ 11 (что, я полагаю, соответствует
TR1) вычислить значения хеш-функции в size_t
размер которого
зависит от реализации (но будет 32 бит для 32 бит
и 64-битная сборка для 64-битной сборки). Если вам нужен хеш с
больший размер, то вам придется рассчитать его самостоятельно; вы
возможно, даже придется определить больший интегральный тип для поддержки
вычисляя это. (Вы не можете вернуть 80-битный хэш-код в
size_t
если size_t
только 64 бит.)
Других решений пока нет …