diff --git a/djb2.c b/djb2.c new file mode 100644 index 0000000..a468f97 --- /dev/null +++ b/djb2.c @@ -0,0 +1,22 @@ +#include + +unsigned long djb2(const char *str) { + unsigned long h = 5381; + int c; + + while ((c = *str++)) { + h = ((h << 5) + h) + c; + + // Essentially equal to: + // h = h * 33 + c; + } + + return h; +} + +int main(void) { + char *a = "ABC"; + printf("Hash: %ld\n", djb2(a)); + + return 0; +}