Возник небольшой вопрос по поводу хеш-ций и вообще о хеш-коде.
Я знаю что такое хеш-функция и про её особенности (ну и про среды применения).
В моём понимании, такая функция принимает на вход аргумент и уже возвращает какое-то число. В зависимости от типа аргумента меняется и алгоритм вычисления. Но самый распространённый пример - это хеш от строки.
Т.е допустим:
// Return number
function hashcode(arg) {
...
}
hashcode("abracadabra");
И эта самая функция вернёт число. Ведь именно так можно использовать всевозможные хеш-таблицы и вследствие различные ассоциативные массивы на их основе (Там всякие Java HashMap'ы и т.д).
Но недавно на плюсах нашёл код, который генерирует от строки хеш-код N-го размера. И причём сам хеш-код не число, а символы. Вроде
aVdxYYbs
. Разве это не нарушает правила хеш-кода (что оный должен быть только числом)? Или я не прав?