长到hexString,大小错误

时间:2016-07-18 09:45:18

标签: android type-conversion

我使用自定义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个字节,有正确的)。那是为什么?

1 个答案:

答案 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();
}  

//考虑使用此