代码如下
private static short parseUnsignedShort(String hex, int radix) {
// 判断长度
// 最长 xxxx 最短 x
if (hex.length() != 4 || hex.length() < 1) {
throw new RuntimeException("字符串\"hex\"的长度不在0~4之间");
}
// 判断是否是负数
// 0x7fff 按 short 计算为正数
// 0x8000 按 short 计算为负数
if (hex.charAt(0) > '7') {
// 在前面加上 ffff 使得其成为按 int 计算时的负数
return (short) Integer.parseUnsignedInt(new StringBuffer("ffff").append(hex.substring(0, 4)).toString(), radix);
} else {
return Short.valueOf(hex.substring(0, 4), radix);
}
}
食用方法:复制即食