如何将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数组的主要内容,如果未能解决你的问题,请参考以下文章