*字符串转16进制
/**
*
字符串转换成为16进制(无需Unicode编码)
*
@param str
*
@return
*/
public
static
String
str2HexStr(String str) {
char
[]
chars =
"0123456789ABCDEF"
.toCharArray();
StringBuilder
sb =
new
StringBuilder(
""
);
byte
[]
bs = str.getBytes();
int
bit;
for
(
int
i
=
0
;
i < bs.length; i++) {
bit
= (bs[i] &
0x0f0
)
>>
4
;
sb.append(chars[bit]);
bit
= bs[i] &
0x0f
;
sb.append(chars[bit]);
//
sb.append(' ');
}
return
sb.toString().trim();
}
/**
*
16进制直接转换成为字符串(无需Unicode解码)
*
@param hexStr
*
@return
*/
public
static
String
hexStr2Str(String hexStr) {
String
str =
"0123456789ABCDEF"
;
char
[]
hexs = hexStr.toCharArray();
byte
[]
bytes =
new
byte
[hexStr.length()
/
2
];
int
n;
for
(
int
i
=
0
;
i < bytes.length; i++) {
n
= str.indexOf(hexs[
2
*
i]) *
16
;
n
+= str.indexOf(hexs[
2
*
i +
1
]);
bytes[i]
= (
byte
)
(n &
0xff
);
}
return
new
String(bytes);
}