And for 44100, my C program gives

00 00 00 00 00 00 44 ac 0e 40 00 00 00 00 00 00

(this looks to be the opposite byte ordering of your example)

str="\x00\x00\x00\x00\x00\x00\x44\xac\x0e\x40"
mant, exp = str.unpack("QS")
mant * 2.0 ** (exp-16446)
=> 44100.0

-- 
Posted via http://www.ruby-forum.com/.