gpt4 book ai didi

java - 在 Java 中将二进制实数转换为 double - 例如,0.011011110010101 到 .4342

转载 作者:行者123 更新时间:2023-12-01 13:34:52 24 4
gpt4 key购买 nike

我正在尝试用java编写代码来解码算术二进制代码。问题是我收到的二进制数是,例如“0110111100101011”,代表二进制小数值0.011011110010101,等于十进制0.4342498。

我找不到任何方法来做到这一点;请帮助我。

我知道等式以及将字符串的值转换为 double 值后如何计算的字符串,但我不知道如何将字符串转换为 double.

import java.util.Scanner;

double value = .434249878; // still cant kno who to chamge it from binary to decimal
double upper = 1.0;
double lower = 0.0;
double current_range = upper - lower;
char ch;
double v;
Scanner scan=new Scanner (System.in);
System.out.println ("Enter characor");
// ch= scan.next().charAt(0);

while(ch!='n'){
current_range = upper - lower;
v= (value-lower) / (upper-lower);

最佳答案

更简单的方法是解析二进制数并最后应用指数。

public static double parseBinary(String s) {
int exp = Integer.MIN_VALUE;
long value = 0;
for(int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (ch == '.') {
exp = 0;
} else {
value = value * 2 + ch - '0';
exp++;
}
}
return exp < 0 ? value : Math.scalb(value, -exp); // value * 2^^-exp
}

关于java - 在 Java 中将二进制实数转换为 double - 例如,0.011011110010101 到 .4342,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com