十六进制转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;