011F(十六进制)=287
FF9B(十六进制)=-101
char[] hex_byte= {'0','1','1','F'};//{'F','F','9','B'}
String temperature = "";
if(Integer.parseInt(String.valueOf(hex_byte, 0, 1),16)>7) {//补码
temperature="-"+((Integer.parseInt(String.valueOf(hex_byte, 0, 4),16)^Integer.parseInt("ffff",16))+1);
}
else {
temperature = new BigInteger(String.valueOf(hex_byte, 0, 4), 16).toString();
}
System.out.println(temperature);