我正在通过Arduino
从Uart
向Android发送十六进制值。我将byte[]
缓冲区中收到的字节存储到Android端的长字符串中。而且,在以字符串形式存储之后,我想将其转换为十六进制,或者希望我的数组支持大于128的值。
当我这样做
byte[] received_byte= string.getBytes();
String received = bytesToHex(received_array);
static String bytesToHex(byte[] hashInBytes) {
StringBuilder value = new StringBuilder();
for (byte b : hashInBytes) {
value.append(String.format("%02x", b & 0xff));
}
return value.toString();
}
Arduino
发送此消息:2b18021a00011a1a0708403081806f0132140845
收到的字符串包含以下内容:2b18021a00011a1a07084030efbfbdefbfbdefbfbd6f0132140845
我知道字节不支持大于128的值。我什至尝试更改short []
中的Received_byte,但是问题在于我的字符串包含此"+=��@0���o2E"
,因为我直接从byte[]
缓冲区。
如果我不清楚我的问题,请告诉我。