我使用自定义USB设备。我得到它的字节数组。我想将此数组显示为十六进制字符串,因此我首先将其转换为Long,如下所示:
byte[] receivedTag = connector.receive(512);
String tag = null;
if (receivedTag != null) {
long tagValue = ByteBuffer.wrap(receivedTag).getLong();
接下来我想将其转换为十六进制字符串:
tag = Long.toHexString(tagValue);
但是我在这里遇到了问题。 Received Tag有大约400个字节(我在调试时已经检查过),但是当我转换它时,tag只有16个字符长(8个字节,有正确的)。那是为什么?
答案 0 :(得分:1)
public static String bytesToHex(byte[] in) {
final StringBuilder builder = new StringBuilder();
for(byte b : in) {
builder.append(String.format("%02x", b));
}
return builder.toString();
}
//考虑使用此