Checksum:【电脑】总和检验码,校验总和。在数据处理和数据通信领域中,用于校验目的的一组数据项的和。这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。
它通常是以十六进制为数制表示的形式,如:
十六进制串: 0102030405060708
的效验和是: 24 (十六进制)
如果效验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校验和.
通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性.
验证该算法的一段程序
#include "stdio.h"
void main()
{
//int a[8]={0x4E,0x00,0x00,0x7C,0x65,0x02,0x00,0x00};
int a[8]={0x4E,0x00,0x00,0x20,0x65,0x00,0x00,0x00};
int b[8],t;
int i,sum=0;
int j=0xD3;
for (i=0;i<8;i++)
{
b[i]=a[i];
}
for(i=0;i<8;i++)
{
sum+=a[i];
}
t=sum&0xFF;
t=~t&0xFF;
b[1]=t;
sum=0;
for (i=0;i<8;i++)
{
sum+=b[i];
}
//printf("0x%X\",~j&0xFF);
printf("0x%X\",sum&0xFF);
}