Java整数-字节,字节-字符,字节数组-十六进制字符串转换

// 整数到字节数组转换
publicstaticbyte[] int2bytes(int n) {
byte[] ab =newbyte[4];
ab[
0] = (byte) (0xff& n);
ab[
1] = (byte) ((0xff00& n) >>8);
ab[
2] = (byte) ((0xff0000& n) >>16);
ab[
3] = (byte) ((0xff000000& n) >>24);
return ab;
}


// 字节数组到整数的转换
publicstaticint bytes2int(byte b[]) {
int s =0;
s
= ((((b[0] &0xff) <<8| (b[1] &0xff)) <<8) | (b[2] &0xff)) <<8
| (b[3] &0xff);
return s;
}


// 字节转换到字符
publicstaticchar byte2char(byte b) {
return (char) b;
}


privatefinalstaticbyte[] hex ="0123456789ABCDEF".getBytes();

privatestaticint parse(char c) {
if (c >='a')
return (c -'a'+10) &0x0f;
if (c >='A')
return (c -'A'+10) &0x0f;
return (c -'0') &0x0f;
}


// 从字节数组到十六进制字符串转换
publicstatic String Bytes2HexString(byte[] b) {
byte[] buff =newbyte[2* b.length];
for (int i =0; i < b.length; i++) {
buff[
2* i] = hex[(b[i] >>4) &0x0f];
buff[
2* i +1] = hex[b[i] &0x0f];
}

returnnew String(buff);
}


// 从十六进制字符串到字节数组转换
publicstaticbyte[] HexString2Bytes(String hexstr) {
byte[] b =newbyte[hexstr.length() /2];
int j =0;
for (int i =0; i < b.length; i++) {
char c0 = hexstr.charAt(j++);
char c1 = hexstr.charAt(j++);
b[i]
= (byte) ((parse(c0) <<4) | parse(c1));
}

return b;
}

https://my.oschina.net/goldwave/blog/8299

https://my.oschina.net/tequliapop/blog/541626

https://my.oschina.net/cshuangxi/blog/262420

猜你喜欢

转载自m635674608.iteye.com/blog/2331526