如何将16进制 转换byte数组

Posted

tags:

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

参考技术A 方法/步骤
byte数组转换成16进制字符串String:
public
class
CommonUtil

/**
*
byte数组转换成16进制字符串
*
@param
src
*
@return
*/
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进制字符数组String[]:
public
class
CommonUtil

/**
*
byte数组转换成16进制字符数组
*
@param
src
*
@return
*/
public
static
String[]
bytesToHexStrings(byte[]
src)
if
(src
==
null
||
src.length
<=
0)

return
null;

String[]
str
=
new
String[src.length];
for
(int
i
=
0;
i
<
src.length;
i++)

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

str[i]
=
"0";

str[i]
=
hv;

return
str;


测试最终结果:
public
static
void
main(String[]
args)

byte[]
src
=
new
byte[]
1,
2,
3,
4
;
System.out.println(
bytesToHexString(src)
);
System.out.println(
bytesToHexStrings(src)[2]
);

字节数组到十六进制字符数组的转换[重复]

【中文标题】字节数组到十六进制字符数组的转换[重复]【英文标题】:Byte array to hex char array conversion [duplicate] 【发布时间】:2015-05-05 11:07:57 【问题描述】:

我的字节数组是这样的

 byte[] x =  (byte) 0xff , (byte) 0x80  ;

如何将其转换为 char 数组 char[] y 其中:-

y[0]='f';
y[1] ='f' and so on

【问题讨论】:

... 你的“等等”是什么意思?想必你并不是说数组中的每个元素都是'f',它看起来就是这个样子。 你想把它转换成 'f', 'f', '8', '0' 吗? @Thilo 为什么将其标记为重复?问题是关于转换为 char 数组。在java中转换为字符串不等于转换为char数组。尤其是涉及到密码的时候。 【参考方案1】:

这应该对你有帮助:

byte[] data =  (byte) 0xff , (byte) 0x80  ;
String text = new String(data, "UTF-8");
char[] chars = text.toCharArray();

【讨论】:

这不会产生 'f', 'f', '8', '0' 嗯,没有指定,所以我假设他想将字节转换为相应的字符值...... 是的。这个问题后来澄清了。 感谢 Thilo 的链接,共享代码对我有用。字节[] x = (字节)0x80,(字节)0x60; StringBuilder sb = new StringBuilder(x.length * 2); for(byte b: x) sb.append(String.format("%02x", b & 0xff));字符串 s = sb.toString(); char[] 数组 = s.toCharArray(); 密码不安全。

以上是关于如何将16进制 转换byte数组的主要内容,如果未能解决你的问题,请参考以下文章

java中,如何将double类型数据转换为16进制字符串或者是16进制字节数组

java 16进制byte数组 转化成UTF-8格式字符串

android 字符串转byte数组

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

Java——进制转换的一些内容

go笔记 - 字符串、数字、byte相互转换