123.456
浮動小数点数(例:)をbinary32に変換する方法があるかどうかを調べるために、私はずっと探してきました。binary32 から float に移行する多くのソリューションを見つけましたが、その逆はありません。
質問する
2026 次
3 に答える
6
上記は素晴らしいですが、いくつか単純化しています。
[123.456].pack('g').bytes.map{|n| "%08b" % n}.join
'g'
の代わりにフラグを使用すると、 から出力する必要が'e'
なくなります。このメソッドは、各文字の呼び出しと同じことを行います。次に、4 つの整数を取得して合計/ビット シフトを行う代わりに、それぞれを 8 文字のバイナリ文字列にマップし、それらを結合します。reverse
pack
bytes
.ord
于 2013-07-25T22:27:03.940 に答える
3
String#unpackとArray#packを使用する必要があります。
[123.456].pack('g').unpack('B*').first
#=> "01000010111101101110100101111001"
于 2017-01-08T22:03:36.537 に答える