打印

刚写的基于udp通信的校验算法源码

[复制链接]
2248|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guoxuekun|  楼主 | 2008-7-17 08:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

原文作者:玉丫子   本文来自于: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开发服务平台 http://www.hellodsp.com/bbs/,本贴地址:http://www.hellodsp.com/bbs/viewthread.php?tid=7667



相关帖子

沙发
gtekled| | 2012-11-20 14:28 | 只看该作者
看得不是太懂,坐等,学习!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

53

帖子

0

粉丝