From: EGUCHI Osamu Date: 2010-03-16T14:25:54+09:00 Subject: [ruby-dev:40666] Re: [Feature #2968] 数値の正負を返すメソッド えぐち@エスアンドイーです 2010年3月16日14:03 NARUSE, Yui : > %a 絡みの処理を書いていて、バイナリとしてはすぐそこにあるはずのものが、 > Ruby レイヤだとかなり手間をかけないと取れない理不尽さ、かな。 > わたしが知らないだけなのかもしれませんが、現状指数部・仮数部を取るのって、 > 結構大変ですよね。 packテンプレート文字列 - Rubyリファレンスマニュアル http://www.ruby-lang.org/ja/man/html/pack_A5C6A5F3A5D7A5ECA1BCA5C8CAB8BBFACEF3.html ーーー IEEE754準拠な環境の場合、以下のようにして符号、指数部、仮数部を取り出せます。 s = [v].pack("g").unpack("B*")[0][0,1] # 符号 e = [v].pack("g").unpack("B*")[0][1,8] # 指数部 f = [v].pack("g").unpack("B*")[0][9,23] # 仮数部 ーーー と言う方法があるものの、組み込みメソッドにあっても悪くないと思います。 えぐち