2017-01-08 3 views
1

Rubyで32ビットバイナリ文字列をIEEE 754浮動小数点値に変換する方法を教えてもらえますか?バイナリ文字列をIEEE 754 floatに変換する

たとえば、バイナリ文字列 "01000001100101110011001100110011"(0x41973333)は18.9に変換する必要がありますが、Rubyを使用してこれを行う方法を理解できません。 https://www.h-schmidt.net/FloatConverter/IEEE754.html

ありがとう:

は私がで返される値と同じ値を取得しようとしています。

答えて

4

これは楽しいものでした!

あなたはString#unpackArray#packが必要です

["01000001100101110011001100110011"].pack('B*').unpack('g').first 
#=> 18.899999618530273 
[18.9].pack('g').unpack('B*').first 
#=> "01000001100101110011001100110011" 

'g'は次のとおりです。

g   | Float | single-precision, network (big-endian) byte order 

'B*'は複数ある:

B   | String | bit string (MSB first) 
+0

はありがとうございました!! – user3481798

関連する問題