デースケドガーハッシュアルゴリズム part2


int dkcHash16_(unsigned char *pd,size_t cycle){
unsigned int v = 0;
size_t i,j;
size_t shift_ = 8;

for(i=0;i<cycle;i++){
v = ((v << shift_) + pd[i]) % 31991;
}
v = (v & 0x7FFF);
return (int)v;
//return (int)((v % 31991) & 0x7FFF);
}

ってか、アルゴリズムの教科書そのまんまだね・・・。
あまり良いProgramIdiomとは言えないなぁ・・・ループ内に剰余を入れた時点で負け _| ̄|○