我有一个函数(抄来的),有一行看不懂,能高手解释一下吗?static unsigned int account_hash(char const * username)
{
unsigned int i;
unsigned int pos;
unsigned int hash;
unsigned int ch;

ASSERT(username, 0);

for (hash=0,pos=0,i=0; i<strlen(username); i++) {
if (isascii((int)username[i]))
ch = (unsigned int)(unsigned char)tolower((int)username[i]);
else
ch = (unsigned int)(unsigned char)username[i];
hash ^= ROTL(ch,pos,sizeof(unsigned int)*CHAR_BIT);
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<--这里
pos += CHAR_BIT-1;
}
return hash;
}有谁能给解释一下划线的那一行?
分数不够的话我再加