public static String huoQuYuanMa(String data) {
//data = "6550.9";
final String FUHAO = "11111111";
StringBuilder stringBuilder = new StringBuilder();
String[] split = data.split("\\.");
for (String s : split) {
stringBuilder.append(s);
}
String str = String.valueOf(stringBuilder);
//十进制转换为二进制
StringBuilder shiJinZhi = new StringBuilder();
int n = Integer.parseInt(str);
for (int i = 15; i >= 0; i--) {
shiJinZhi.append(n >>> i & 1);
}
if (shiJinZhi.length() > 8) {
//获取前八位
String qianBaWei = String.valueOf(shiJinZhi).substring(0, 8);
if (FUHAO.equals(qianBaWei)) {
//从第八位截取到末尾
String substring = String.valueOf(shiJinZhi).substring(8);
int i = Integer.parseInt(substring);
//System.out.println(i);
//字符串第一个字符最后出现的下标
int lastIndex = substring.lastIndexOf("1");
//System.out.println(lastIndex);
char[] chars = substring.toCharArray();
chars[lastIndex] = '0';//二进制减一
//要取反的结果 补码减一的结果
StringBuilder stringBuilder1 = new StringBuilder();
for (char aChar : chars) {
stringBuilder1.append(aChar);
}
//System.out.println(stringBuilder1);
//将二进制转换为十进制
int i1 = Integer.parseInt(String.valueOf(stringBuilder1), 2);
//System.out.println(i1);
String binary = add(InvertedCode(对i1取反);
int i2 = Integer.parseInt(binary, 2);
//System.out.println(i2 - 1);
double res = (double) (i2 - 1) / 10;
//System.out.println(res);
String result = "-" + res;
//System.out.println(result);
return result;
}
}
return null;
}
多气象要素百叶箱负数温度转换
最新推荐文章于 2024-10-06 20:16:20 发布
该代码段展示了将十进制小数转换为二进制,然后进行特定操作的过程。首先,它将十进制数转换为二进制,检查前八位是否匹配预设模式。如果匹配,它执行二进制减一操作,并对结果取反,再转换回十进制,最终得到一个负数的浮点表示。
摘要由CSDN通过智能技术生成