作者:奇奇丶承诺 | 来源:互联网 | 2023-09-13 18:34
16进制补码转10进制数16进制补码转10进制工具类,记下来以后就不重复写了***16进制补码转10进制数*@paramstr*@return*publicstaticintcom
16进制补码转10进制数
16进制补码转10进制工具类,记下来以后就不重复写了
/** * 16进制补码转10进制数 * @param str * @return */
public static int complemwnt(String str) {
int result = 0;
String binaryString = Integer.toBinaryString(Integer.valueOf(str, 16));
while(binaryString.length() < 16){
binaryString = "0"+binaryString;
}
String binary = binaryString.substring(0,1);//取第一位判断正负
if ("0".equals(binary)) {
result = Integer.valueOf(binaryString,2);
}else {
String[] split = binaryString.split("");
StringBuilder builder = new StringBuilder();
for (String s : split) {
if("0".equals(s)){
builder.append("1");
}else {
builder.append("0");
}
}
// 调用Integer.valueOf(value, 2) 将二进制转为十进制.
result = Integer.valueOf(builder.toString(),2);
// 先取负数在减1
result = (0 - result) - 1;
}
return result;
}