我需要创建一串十六进制值。现在,我有这样的东西。
String address = "5a f2 ff 1f";
但是当将此地址转换为字节时:
byte[] bytes= address.getBytes();
它让我将每个字母和空格作为一个字节,而不是将每个 2 个字符作为一个字节 ang 留下空格。所以...
我该如何声明?
private String CalcChecksum (String message) {
/**Get string's bytes*/
message = message.replaceAll("\\s","");
byte[] bytes = toByteArray(message);
byte b_checksum = 0;
for (int byte_index = 0; byte_index < byte_calc.length; byte_index++) {
b_checksum += byte_calc[byte_index];
}
int d_checksum = b_checksum; //Convert byte to int(2 byte)
int c2_checksum = 256 - d_checksum;
String hexString = Integer.toHexString(c2_checksum);
return hexString;
}