All pastes #177263 Raw Edit

amk elf hash

public c v1 · immutable
#177263 ·published 2006-09-20 09:19 UTC
rendered paste body
#include <windows.h>#include <stdio.h>#include <stdlib.h>#define MAX_HASH_SIZE 0x0FFFFFFFunsigned int ELFHash (char* str, unsigned int len){   unsigned int hash = 0;   unsigned int x    = 0;   unsigned int i    = 0;   for(i = 0; i < len; str++, i++)   {      hash = (hash << 4) + (*str);      if((x = hash & 0xF0000000L) != 0)      {         hash ^= (x >> 24);         hash &= ~x;      }   }   return (hash & MAX_HASH_SIZE);}int main (){    printf("elf(a)       : %d\n", ELFHash("a", 1));    printf("elf(b)       : %d\n", ELFHash("b", 1));    printf("elf(c)       : %d\n", ELFHash("c", 1));    printf("elf(d)       : %d\n", ELFHash("d", 1));    printf("0x%00000008X   : %d\n", MAX_HASH_SIZE, MAX_HASH_SIZE);    system("PAUSE");    return 0;}