Привет, я пытаюсь преобразовать функцию php на языке ruby.
Есть ли ошибка, потому что результаты разные
Функция на языке php:
function rpHash($value) {
$hash = 5381;
$value = strtoupper($value);
for($i = 0; $i < strlen($value); $i++) {
$hash = (($hash << 5) + $hash) + ord(substr($value, $i));
}
return $hash;
}
Функция, которую я попытался сделать в ruby:
def real_person_hash value
hash = 5381
value = value.to_s.upcase
for i in 0..(value.length - 1)
hash = ((hash << 5) + hash) + value[i]
end
hash
end
Es.
value = "nzxs"
php function returns:
2089377688
ruby function :
6384344984
Я также отметил, что значения первых 3 для циклов равны. и только в последнем цикле они становятся другими
Почему?