如何从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
到目前为止,您是否尝试过任何方法?当然,我可以创建自己的存储双精度的方法,但我需要规范的方法。到目前为止,您是否尝试过任何方法?当然,我可以创建自己的存储双精度的方法,但我需要规范的方法