您的位置:首页 > 其它

字节数组与16进制字符 3ff0 串的转换

2011-05-21 18:10 225 查看
private static final char[] digits = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
};

public static String bytes2hex(byte[] bs)
{
char[] buf = new char[bs.length << 1];
int i = bs.length, j = buf.length;
while (i > 0)
{
buf[--j] = digits[bs[--i] & 0xF];
buf[--j] = digits[bs[i] >>> 4 & 0xF];
}
return new String(buf, j, buf.length - j);
}

private static char c2c(char c)
{
if (c >= '0' && c <= '9')
{
c -= '0';
} else if (c >= 'A' && c <= 'F')
{
c -= '7';
} else
{
c -= 'W';
}
return c;
}

public static byte[] hex2bytes(String hex)
{
byte[] buf = new byte[hex.length() >>> 1];
char[] chars = hex.toCharArray();
for (int i = 0, j = 0; i < chars.length; i++)
{
buf[j++] = (byte) (c2c(chars[i]) << 4 | c2c(chars[++i]));
}
return buf;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: