关于字节操作的一些事情

 public static String bytesToHexFun1(byte[] bytes) {
        // 一个byte为8位,可用两个十六进制位标识
        char[] buf = new char[bytes.length * 2];
        int a = 0;
        int index = 0;
        for(byte b : bytes) { // 使用除与取余进行转换
            if(b < 0) {
                a = 256 + b;
            } else {
                a = b;
            }

            buf[index++] = HEX_CHAR[a / 16];
            buf[index++] = HEX_CHAR[a % 16];
        }

        return new String(buf);
    }

上面是将byte转换为16进制,那么为什么a=256+b?

答案是因为一个char就是一个字节,一个字节有256种,因为数组的次序不能是负的,所以加上256后还是等于自身


猜你喜欢

转载自blog.csdn.net/nimeghbia/article/details/80536424