Javascript 采用DJB Time33算法将长字符串转换为数字
阅读(4369)将字符串转换为数字,例如将url地址转换为数字后,用作对象的key,可以减少key的长度:
function genHash (str){ var hash = 5381; str = str || ''; for(var i=0, len=str.length; i<len; ++i){ hash += (hash << 5) + str.charAt(i).charCodeAt(); } return hash & 0x7fffffff; }
基于 Time33 的哈希函数,又叫 DJBX33A 算法(Daniel J. Bernstein, Times 33 with Addition),其实现就是不断的乘以33。
PHP、Apache、Perl 采用此算法。