我在Android/Java中编写了一个校验和计算函数,函数如下:
void CalculateCheckSum( byte[] bytes ){
short CheckSum = 0, i = 0;
for( i = 0; i < bytes.length; i++ ){
CheckSum = (short) ((short)CheckSum + (short)bytes[i]);
}
Log.i("Checksum", Integer.toHexString(CheckSum));
}
计算校验和的输入值为0xEF,0x01,0xEF,0x01,0x33,0x0C,0xB8,0xE5,0xFC,0x34,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF。我手动计算出的校验和值为0xCE4。但使用上述函数后,得到的答案为0xFFFFFFE4。请问我的计算中是否有错误,如果有,请纠正我。
谢谢。