📄 cksum.c
字号:
unsigned int cksum(unsigned char * input, unsigned int len)
{
unsigned long sum;
unsigned int i;
unsigned int * ptr;
sum = 0;
ptr=(unsigned int *)input;
for(i=0; i<(len)/2; i++)
{
sum+=*ptr++;
}
if(len & 0x01)//表示长度为单数
{
sum=sum+((*ptr)&0xff00);
}
sum=(sum&0xffff)+((sum>>16)&0xffff);//高16位和低16位相加
if(sum & 0xffff0000)
{//表示有进位
sum++;
}
return ((unsigned int)((sum)&0xffff));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -