2
我被反向工程通過一個老遊戲中使用的存檔文件格式,並且發現它使用下面的函數(用手反編譯)散列文件名:什麼是散列函數?
int hash(char* filename) {
unsigned int a = 0;
int b = 0;
for(int i = strlen(filename)-1; i>=0; i--)
char c = toupper(filename[i]);
a=(a<<5)+(a>>25);
b+=c;
a+=b+c;
}
return a;
}
我想知道,如果這是什麼標準,或者如果它只是開發人員隨機挑選的東西。
你能告訴我們這是什麼遊戲嗎?相當現代的隨機數生成函數基於相同的想法 – 2011-01-06 08:45:09