刚写的基于UDP的效验算法的源码
原文作者:玉丫子 本文来自于:HELLODSP
uint16 CheckSumUdp(uint8 *check,uint16 length)
{
uint32 sum=0;
uint16 i;
for (i=0;i<(length)/2;i++)
{
sum = sum + ((uint32)check[2*i]<<8)+(uint32)check[2*i+1];
}
if(length&0x0001)//长度为奇数个时,要进行该操作
{
sum = sum + ((uint32)check[2*i]<<8);
}
sum = (sum&0xffff) + ((sum>>16)&0xffff);//高16位和低16位相加
if(sum & 0xffff0000)
{//表示有进位
sum++;
}
return ( (uint16)(~((sum)&0xffff)) );
}
转载请注明出自DSP交流网 DSP学习第一论坛 DSP技术应用与推广平台 DSP开发服务平台 ,本贴地址:
发表时间:2008年7月16日17:34:24