Comment calculer le code de hachage d'une chaîne à la main?

Je me demandais comment calculer le code de hachage pour une chaîne donnée par la main. Je comprends qu'en Java, vous pouvez faire quelque chose comme:

String me = "What you say what you say what?";  
long whatever = me.hashCode();

Que tout va bien et dandy, mais je me demandais comment le faire à la main. Je connais la formule pour calculer le code de hachage d'une chaîne est quelque chose comme:

S0 X 31 ^ (n-1) + S1 X 31 ^ (n-2) + .... + S(n-2) X 31 + S(n-1)  

Où S indique le caractère dans la chaîne, et n est la longueur de la chaîne. À l'aide de 16 bits unicode puis, le premier caractère de la chaîne de moi, ce serait calculé comme:

87 X (31 ^ 34)

Cependant, qui crée un incroyablement grand nombre. Je ne peux pas imaginer l'ajout de tous les personnages ensemble comme ça. Ainsi, pour le calcul de la plus faible-de l'ordre de 32 bits du résultat, alors, que ferais-je? Longtemps que ce soit d'au-dessus est égal à -957986661 et je ne suis pas la façon de calculer cela?

OriginalL'auteur thomascirca | 2010-09-25