位元組陣列轉化為十六進位制字串時 &0xff
阿新 • • 發佈:2018-12-12
我是資源的搬運工~~~
關於這個位元組陣列轉化為十六進位制字串時 &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