Compute Checksum Function

September 10th, 2009 by aimslife Leave a reply »

unsigned short ComputeChecksum(unsigned short *data, int size)
{
    register int nleft=size;
    unsigned long checksum = 0;
    while(nleft>1)
    {
        checksum=checksum+*data++;
        nleft=nleft-sizeof(unsigned short);
    }
    if(nleft)
        checksum=checksum+*(unsigned char*)data;
    checksum=(checksum>>16)+(checksum&0xffff);
    checksum=checksum+(checksum>>16);
    return (unsigned short)(~checksum);
}

You can translate above code in any language (either Java or C#). It was written in C language.

Advertisement

Leave a Reply