打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
java中字符窜与16进制,byte之间的转换
KILLKISS
>《java》
2012.09.13
关注
java中字符窜与
16
进制,
byte
之间的转换
java中字符窜与
16
进制,
byte
之间的转换
package
org.lib.code;
/**
* java String 与各种进制字符之间的转换
*
* @author 流水孟春^篱笆墙外 08.3.4
*/
public
class
Coding {
/**
* 字符串转换成十六进制值
* @param bin String 我们看到的要转换成十六进制的字符串
* @return
*/
public
static
String bin2hex(String bin) {
char
[] digital =
"0123456789ABCDEF"
.toCharArray();
StringBuffer sb =
new
StringBuffer(
""
);
byte
[] bs = bin.getBytes();
int
bit;
for
(
int
i =
0
; i < bs.length; i++) {
bit = (bs[i] &
0x0f0
) >>
4
;
sb.append(digital[bit]);
bit = bs[i] &
0x0f
;
sb.append(digital[bit]);
}
return
sb.toString();
}
/**
* 十六进制转换字符串
* @param hex String 十六进制
* @return String 转换后的字符串
*/
public
static
String hex2bin(String hex) {
String digital =
"0123456789ABCDEF"
;
char
[] hex2char = hex.toCharArray();
byte
[] bytes =
new
byte
[hex.length() /
2
];
int
temp;
for
(
int
i =
0
; i < bytes.length; i++) {
temp = digital.indexOf(hex2char[
2
* i]) *
16
;
temp += digital.indexOf(hex2char[
2
* i +
1
]);
bytes[i] = (
byte
) (temp &
0xff
);
}
return
new
String(bytes);
}
/**
* java字节码转字符串
* @param b
* @return
*/
public
static
String byte2hex(
byte
[] b) {
//一个字节的数,
// 转成16进制字符串
String hs =
""
;
String tmp =
""
;
for
(
int
n =
0
; n < b.length; n++) {
//整数转成十六进制表示
tmp = (java.lang.Integer.toHexString(b[n] &
0XFF
));
if
(tmp.length() ==
1
) {
hs = hs +
"0"
+ tmp;
}
else
{
hs = hs + tmp;
}
}
tmp =
null
;
return
hs.toUpperCase();
//转成大写
}
/**
* 字符串转java字节码
* @param b
* @return
*/
public
static
byte
[] hex2byte(
byte
[] b) {
if
((b.length %
2
) !=
0
) {
throw
new
IllegalArgumentException(
"长度不是偶数"
);
}
byte
[] b2 =
new
byte
[b.length /
2
];
for
(
int
n =
0
; n < b.length; n +=
2
) {
String item =
new
String(b, n,
2
);
// 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个进制字节
b2[n /
2
] = (
byte
) Integer.parseInt(item,
16
);
}
b =
null
;
return
b2;
}
public
static
void
main(String[] args) {
String content =
"技术性问题EDF%&^%#_|~"
;
System.out.println(bin2hex(content));
System.out.println(hex2bin(bin2hex(content)));
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
初学入门:JAVA里字符编码的探索与理解 - 全部文章 - 技术学习
Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换
Android 和 PHP 之间进行数据加密传输
MessageDigest对密码进行加密 - study - BlogJava
16进制字符串与byte数组互转
【重点】java中 转16进制字符串 hex
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×