1. 程式人生 > >位元組陣列轉化為十六進位制字串時 &0xff

位元組陣列轉化為十六進位制字串時 &0xff

我是資源的搬運工~~~

關於這個位元組陣列轉化為十六進位制字串時 &0xff,看到很多次了,這裡整理一下網上的資料,記錄一下:

 /**
     * 位元組陣列轉換成字串HEX表示
     *
     * @param data 位元組陣列
     * @return 位元組陣列的HEX字串表示
     */
    public static String bytes2HexString(byte[] data) {
        if (data == null) {
            throw new NullPointerException();
        }

        StringBuilder buffer = new StringBuilder();
        for (byte b : data) {
            String hex = Integer.toHexString(b & 0xff);//為啥呢1 ??
            if (hex.length() == 1) {
                buffer.append('0');//為啥呢2 ??
            }
            buffer.append(hex);
        }
        return buffer.toString().toUpperCase();
    }

為啥呢1 :保持二進位制補碼的一致性

為啥呢2:如果是十六進位制的0f,預設只顯示f,此時要補上0