java中如何将byte[]里面的数据转换成十六进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何将byte[]里面的数据转换成十六进制相关的知识,希望对你有一定的参考价值。

/* *
* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)
*来转换成16进制字符串。
* @param src byte[] data
* @return hex string
*/
public static String bytesToHexString(byte[] src)
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0)
return null;

for (int i = 0; i < src.length; i++)
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2)
stringBuilder.append(0);

stringBuilder.append(hv);

return stringBuilder.toString();

此方法能将byte[]转化成16进制字符串,希望能帮到你。
参考技术A 两种方法,直接拷贝任何一个使用就行
public static String bytes2HexString(byte[] b)
String ret = "";
for (int i = 0; i < b.length; i++)
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1)
hex = '0' + hex;

ret += hex;

return ret;



public static String toHex(byte[] buffer)
StringBuffer sb = new StringBuffer(buffer.length * 2);
for (int i = 0; i < buffer.length; i++)
sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16));
sb.append(Character.forDigit(buffer[i] & 15, 16));

return sb.toString();
参考技术B System.out.println(Integer.toHexString(b[0]))

Integer.toHexString()方法可以将一个整数输出为十六进制格式。但是返回值是字符串。
byte类型本身无进制可言。
参考技术C 有个自动转换的方法

以上是关于java中如何将byte[]里面的数据转换成十六进制的主要内容,如果未能解决你的问题,请参考以下文章

java中如何声明一个十六进制的字符串,或者说,怎么发送一个十六进制数据?

java如何将十六进制0xFF5100A5转换为无符号int值,貌似java不支持无符号数据?

TCP通信实现对接硬件发送与接收十六进制数据 & int与byte的转换原理 & java中正负数的表示

十六进制转汉字

如何将字符串加载到 BYTE* 数组(C++)的元素中 [重复]

Java中十六进制转换 Integer.toHexString()