Если у вас есть символьное пространство размером 256, то все, что вы на самом деле делаете, это преобразование из базы 256 в базу 10 . Так что да, каждая возможная строка в вашем алфавите будет отображаться в уникальное целое число.
Тем не менее, на самом деле это не функция ha sh, поскольку это инъективная функция из пространства строк из 256 алфавитов. к натуральным числам (0, 1, 2, 3, ...). Единственная причина, по которой это не биекция, заключается в том, что ваш домен - это [1, 256] вместо [0, 255] (что не имеет значения для того, что у вас есть выше).
Как сказал @andand, если есть максимальное значение, тогда вы определенно столкнетесь с коллизиями, а если нет максимального значения, то это на самом деле не hash
функция.