[#49838] rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — junichirou tahara <taharajunichirou@...>

jxtaharaと申します.

14 messages 2014/06/23
[#49840] Re: rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — EGUCHI Osamu <eguchi@...> 2014/06/23

えぐち@エスアンドイーです。

[#49842] Re: rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — Nobuyoshi Nakada <nobu@...> 2014/06/23

(2014/06/23 9:29), EGUCHI Osamu wrote:

[ruby-list:49840] Re: rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は?

From: EGUCHI Osamu <eguchi@...>
Date: 2014-06-23 00:29:48 UTC
List: ruby-list #49840
えぐち@エスアンドイーです。

2014年6月23日 9:18 junichirou tahara <taharajunichirou@gmail.com>:
> jxtaharaと申します.
> 現在,float数をHEXで表記でできないので悩んでいます.
>
> C言語だと
> float num = 3.14
> unsigned char *p=(unsigned char *)&num;
> sprintf(ps,"0x%02X%02X%02X%02X",p[3],p[2],p[1],p[0]);
>
> 結果
> C3 F5 48 40
>
> みたいにすればHEXで取れると思いますがRubyではどうすればいいのでしょうか?
>
> ss=sprintf("%A",num)
> p ss
> だと,
> "0X1.91EB851EB851FP+1"
> となります.

こんな感じでどうでしょうか?

% ruby -ve 'p [3.14].pack("f").unpack("h*")'
ruby 2.0.0p353 (2013-11-22 revision 43784) [amd64-freebsd9]
["3c5f8404"]

 えぐち

In This Thread