unsigned long ElfHash ( const unsigned char *name )
為北海等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及北海網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、北海網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
{
unsigned long h = 0, g;
while ( *name )
{
h = ( h << 4 ) + *name++;
if ( g = h & 0xF0000000 )//如果最高位不為0,則說明字符已經(jīng)7個,如果不處理,再加第八個字符時,第一個字符會被移出
//因此要有如下處理是每一個字符都對字符串的值進(jìn)行影響。
h ^= g >> 24;//將第一個字符去影響后面每一個字符的
h &= ~g;//清空28到31位。g的28位到31位于h的28位到31位完全相同,且g的其他位完全為0,所以g取反之后,與h相與,之后,
//h的28到31位清空,但是其他位都保留了下來。
}
return h;
}