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中正负数的表示