[問題] 關於shift溢位的小問題
餵入的資料(Input):
name = "Mindale"
程式碼(Code):(請善用置底文網頁, 記得排版)
for(i=0;i<strlen(name);i++)
result=(result<<5)^name[i];
result=result%9733;
補充說明(Supplement):
我使用這hashing function 去做動態雜湊。當輸入名字的字串長度比較長的時候,
跑到一半就會當掉,如果把shift的值改比較小(5改成2)。稍微長一點的字串就可以
解決。照理說溢位的時候也不會當掉吧@@ 想請問鄉民這是甚麼原因?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.66.141
推
01/14 18:40, , 1F
01/14 18:40, 1F
→
01/14 18:41, , 2F
01/14 18:41, 2F
→
01/14 18:49, , 3F
01/14 18:49, 3F
→
01/14 18:50, , 4F
01/14 18:50, 4F
→
01/14 18:52, , 5F
01/14 18:52, 5F
※ 編輯: Mindale 來自: 61.231.66.141 (01/14 18:53)
→
01/14 18:53, , 6F
01/14 18:53, 6F
推
01/14 20:09, , 7F
01/14 20:09, 7F
→
01/14 21:49, , 8F
01/14 21:49, 8F
→
01/14 21:49, , 9F
01/14 21:49, 9F