我想知道如何在Ruby中将64位二进制字符串转换为双精度浮点数。我拥有的字符串如下:
binaryString = "0011111111110000000000000000000000000000000000000000000000000000"
使用在线转换器(http://www.binaryconvert.com/convert_double.html?),我知道该值应为1.0。然而,我试图使用Ruby的unpack函数转换为double类型,但结果不正确。
double_value = binaryString.unpack("G")
给我双精度变量double_value = 1.3983819593719592e-76
我尝试了其他指令,如"F"和"D",但都没有得出正确的结果。
有什么想法我做错了什么吗?谢谢你的帮助!
binaryString
是一个字符串,所以你需要在右边加上引号。(按照现有的写法,binaryString
是一个整数,其数字都是零和一,并且前两个零没有任何意义)。如果它是一个字符串,为什么不使用它的整数值,binaryString.to_i(2) # => 4607182418800017408
?你需要编辑问题来进行更正或澄清。 - Cary Swoveland