如何从Java中的二进制表示中获取浮点数?

如何从Java中的二进制表示中获取浮点数?,java,binary,floating-point,Java,Binary,Floating Point,我想创建一个浮点数的二进制表示,并能够在需要时解析回该数字。“二进制表示法”不是指“0.00101”,而是类似于“101000101”的东西,也就是说,0和1的序列,没有小数分隔符。我需要一种方法,既可以在字符串中为double创建这样的表示,也可以解析字符串的double。 请不要提及xy问题,因为我确实需要这个方法(类似于“无符号二进制值”) 先谢谢你 似乎解决了解析double到String的问题,但我仍然需要帮助来做相反的事情:从二进制到double将Integer.toBinarySt

我想创建一个浮点数的二进制表示,并能够在需要时解析回该数字。“二进制表示法”不是指“
0.00101
”,而是类似于“
101000101
”的东西,也就是说,
0
1
的序列,没有小数分隔符。我需要一种方法,既可以在
字符串中为
double
创建这样的表示,也可以解析
字符串的
double
。 请不要提及xy问题,因为我确实需要这个方法(类似于“无符号二进制值”)

先谢谢你


似乎解决了解析
double
String
的问题,但我仍然需要帮助来做相反的事情:从二进制到
double
Integer.toBinaryString(Float.floatToIntBits(yourNumber))不工作?

整数.tobinarysting(Float.floatToIntBits(yourNumber))不工作?

要将双精度
的位转换为
字符串
,可以使用,它创建一个
长的
,其位与双精度
相同,然后将其转换为
字符串
,其位为字符

double test = 0.5;
long doubleBits = Double.doubleToLongBits(test);
String doubleBitsStr = Long.toBinaryString(doubleBits);
System.out.println(doubleBitsStr);
float test2 = 0.5f;
int intBits = Float.floatToIntBits(test2);
String intBitsStr = Integer.toBinaryString(intBits);
System.out.println(intBitsStr);
输出:
1111111000000000000000000000000000000000000000000000000000000000

若要转换回,请与基数
2
和一起使用

输出:
0.5


要将
浮点
的位转换为
字符串
,可以使用,它创建一个与
浮点
具有相同位的
int
,然后将其转换为以位为字符的
字符串

double test = 0.5;
long doubleBits = Double.doubleToLongBits(test);
String doubleBitsStr = Long.toBinaryString(doubleBits);
System.out.println(doubleBitsStr);
float test2 = 0.5f;
int intBits = Float.floatToIntBits(test2);
String intBitsStr = Integer.toBinaryString(intBits);
System.out.println(intBitsStr);
输出:
111111000000000000000000000000000000000000

若要转换回,请与基数
2
和一起使用


输出:
0.5

要将
双精度
的位转换为
字符串
,可以使用,它创建一个与
双精度
位相同的
长型
,然后将其转换为以位为字符的
字符串

double test = 0.5;
long doubleBits = Double.doubleToLongBits(test);
String doubleBitsStr = Long.toBinaryString(doubleBits);
System.out.println(doubleBitsStr);
float test2 = 0.5f;
int intBits = Float.floatToIntBits(test2);
String intBitsStr = Integer.toBinaryString(intBits);
System.out.println(intBitsStr);
输出:
1111111000000000000000000000000000000000000000000000000000000000

若要转换回,请与基数
2
和一起使用

输出:
0.5


要将
浮点
的位转换为
字符串
,可以使用,它创建一个与
浮点
具有相同位的
int
,然后将其转换为以位为字符的
字符串

double test = 0.5;
long doubleBits = Double.doubleToLongBits(test);
String doubleBitsStr = Long.toBinaryString(doubleBits);
System.out.println(doubleBitsStr);
float test2 = 0.5f;
int intBits = Float.floatToIntBits(test2);
String intBitsStr = Integer.toBinaryString(intBits);
System.out.println(intBitsStr);
输出:
111111000000000000000000000000000000000000

若要转换回,请与基数
2
和一起使用


输出:
0.5

到目前为止,您是否尝试过任何方法?当然,我可以创建自己的存储双精度的方法,但我需要规范的方法。到目前为止,您是否尝试过任何方法?当然,我可以创建自己的存储双精度的方法,但我需要规范的方法