c_cpp 16位哈希

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 16位哈希相关的知识,希望对你有一定的参考价值。

/*
 * hash_16
 *   DESCRIPTION: Produces a 16-bit hash of the input given the length.
 *                Currently uses Bernstein-like hash; we may want to consider
 *                another hashing algorithm later if we need to.
 *   INPUTS: unsigned char* input - bytestring to be hashed
 *           int length - number of bytes to read from input
 *   OUTPUTS: 16-bit hash of the input
 */
uint16_t hash16(uint8_t* input, int length) {
    uint16_t hash = 5381;   // seed for Bernstein hash
    int i;
    // Hash over all bytes in input
    for(i = 0; i < length; i++) {
        hash = ((hash << 5) + hash) + *input++;
    }
    return hash;
}

以上是关于c_cpp 16位哈希的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 哈希的新方法称为炉哈希

c_cpp 为字符串实现哈希表和哈希函数

c_cpp 为字符串实现哈希表和哈希函数

c_cpp C中的哈希映射实现,带有djb2哈希函数

c_cpp lua哈希

c_cpp 快速哈希算法