日期:2014-05-19  浏览次数:21202 次

帮忙解释下这个是什么意思?
public   static   int   Sum(string   str)
{
uint   sum=0;//,i=0;
foreach(char   a   in   str)
{
sum   +=   a;
if(sum> 65535)//control   the   max   value
{
sum   &=   0x0ffff;
}
}
return   (int)sum;
}

------解决方案--------------------
将字符串里的每个字符转换为整型数字.
比如字符串 "abc23 " 就是 'a ' = 97 + b = '98 ' + c = '99 ' + '2 ' = 50 + '3 '= '51 '返回结果..
至少这个程序就是这样执行的..然后为了避免超过65535范围...65535二进制是1111111111111111和0x0ffff是相同的, 如果进行&操作, 则超出的部门为被变为0..