public static String getCheckSum(String cmd){
return getCheckSum(cmd,2);
}
/**
* 和校验,取最后round位
* @param round 取后面多少位
*/
public static String getCheckSum(String cmd, int round) {
int lenth = cmd.length() / 2;
int cmmSum = 0;
for (int i = 0; i < lenth; i++) {
//每两位转为16进制进行计算
int c = Integer.valueOf(cmd.substring(0, 2), 0x10);
cmd = cmd.substring(2);
cmmSum = cmmSum + c;
}
String newString = Integer.toHexString(cmmSum);
newString = "00000000000000000000000" + newString;//这里黑科技
//这里获得我们需要返回的位数
newString = newString.substring(newString.length() - round);
return newString;
}
hhhhhh,使用这种方式主要是嫌麻烦。不想再写for循环了,并且如果写了for循环,也避免不了的要加上StringBuilder来做字符串操作。所以说呀。。。该黑科技的时候,还是要骚