c版本的哈希與javaScript版本的哈希

下面的哈希函數(shù)與標(biāo)準(zhǔn)的哈希有些不一樣,有需要的可以拿去用

C版本的hash

c版本的Hash

javaScript的Hash

hashCode: function(str) {

    //將字符串轉(zhuǎn)成16進(jìn)制再去與 

    var bin_code = new Uint32Array();
    var offset = new Uint8Array();
    let k = strToHexCharCode(str[0]);
    offset = k & 0x3F;
    offset = offset % (str.length - 5);
    bin_code = (strToHexCharCode(str[offset]) & 0x7f) << 24
      | (strToHexCharCode(str[offset + 1]) & 0xff) << 16
      | (strToHexCharCode(str[offset + 2]) & 0xff) << 8
      | (strToHexCharCode(str[offset + 3]) & 0xff);

    let sss = Math.pow(10, 6);

    bin_code = bin_code % sss;

    return bin_code;
  },

//字符串轉(zhuǎn)十六進(jìn)制
function strToHexCharCode(str) {
    if (str === "")
        return "";
    var hexCharCode = [];
    hexCharCode.push("0x");
    for (var i = 0; i < str.length; i++) {
        hexCharCode.push((str.charCodeAt(i)).toString(16));
    }
    return hexCharCode.join("");
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容