十六進制轉byte
在Java中想把 FD 轉成 byte,首先想到的是
byte v = Byte.parseByte(“FD”, 16);
結果得到一個java.lang.NumberFormatException,說值的範圍越界了。
是的,byte的範圍是-128~127,如果把9D當成正數來轉換,結果是157,當然越界了。
是以有這樣三個處理辦法
byte v = (byte) Integer.parseInt(“9D”, 16);
// 或者
byte v = Integer.valueOf(“9D”, 16).byteValue();
//或者
byte v=(byte)0xFD;