取得是低位校验和
public String makeChecksum(String data)
{
if (StringUtils.isEmpty(data))
{
return "";
}
int iTotal = 0;
int iLen = data.length();
int iNum = 0;
while (iNum < iLen)
{
String s = data.substring(iNum, iNum + 2);
System.out.println(s);
iTotal += Integer.parseInt(s, 16);
iNum = iNum + 2;
}
/**
* 用256求余最大是255,即16进制的FF
*/
int iMod = iTotal % 256;
String sHex = Integer.toHexString(iMod);
iLen = sHex.length();
//如果不够校验位的长度,补0,这里用的是两位校验
if (iLen < 2)
{
sHex = "0" + sHex;
}
return sHex;
}