Моя функция алгоритма djb2 выводит неправильное значение, в чем проблема? - PullRequest
0 голосов
/ 18 января 2020

У меня есть задание написать макрос в Libreoffice, который вычисляет га sh, если пользователь дает ему строку (низ) и начальный га sh (zacetni_ha sh). Для значения 9843 и строки «A1234567» вывод должен быть 21760, но моя функция выводит 24489. Кто-нибудь знает, в чем проблема?

Function izracunajHash(niz, zacetni_hash)
    hash=zacetni_hash
    maska=&H00FFFFFF

    f = 1
    length = len(niz)
    Do
        A = Mid(niz, f, 1)
        A = Asc(A)
        A = Val(A)
        hash = (33*hash) + A
        hash = hash And maska
        print hash
        f = f+1
    Loop Until f = length
    hash = hash And &H00007FFF
    izracunajHash = hash    
End Function
...