java中如何将byte[]里面的数据转换成十六进制?

Python017

java中如何将byte[]里面的数据转换成十六进制?,第1张

方法如下:

/* *

* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)

*来转换成16进制字符串。

* @param src byte[] data

* @return hex string

*/  

public static String bytesToHexString(byte[] src){

StringBuilder stringBuilder = new StringBuilder("")

if (src == null || src.length <= 0) {

return null

}

for (int i = 0i <src.lengthi++) {

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进制字符串,

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

JAVA中的数都是有符号的,所以最高位为符号位,你说的最小应该就是负数了,由于又是INT类型,也就是32位,每个位都为1,用二进制表示就是:

1111 1111 1111 1111 1111 1111 1111 1111

转换成相应的16进制就是:

0xFFFFFFFF00000000

java中最小的十六进制int数是:0xFFFFFFFF00000000

电脑显示十六进制数时前面要加0X的,这也算是书写形式,后面的FF是1515的意思(十六进制不分大小写),十六进制的前九个数正常,但是十六进制要用15个数表示10以内的数,所以后面的数用ABCDEF表示,分别代表十以内的10,11,12,13,14,15,没有16因为到16就该往下一个单位进一了,0XFFFF就是十六进制FFFF的意思转换成十进制就是15151515,所以字母代表的就是双数,个位数就正常表示就行,我给你把十六进制的规律写一遍,你就明白了,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20,21,22,23。。。。。。。就是这么个意思,希望对你有帮助