您的位置:首页 > 其它

16进制数据相加,计算校验和

2016-05-05 12:47 399 查看
取得是低位校验和
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  16进制 校验和