From: Yukihiro Matsumoto Date: 2004-11-09T00:03:14+09:00 Subject: [ruby-dev:24750] Re: "\000\000\000\001".unpack("N") returns [0] まつもと ゆきひろです In message "Re: [ruby-dev:24748] "\000\000\000\001".unpack("N") returns [0]" on Mon, 8 Nov 2004 20:28:48 +0900, GOTOU Yuuzou writes: |Ruby 1.8で、Ruby 1.9のtest/ruby/test_pack.rbを試すとエラーに |なります。 |unpack("N")の方は、unsigned longをntohl()に渡す際に上位(右の |方)の桁が落ちています。ここはswaplだとまずいんでしょうか? はて。Little endianでは #define ntohl(x) swapl(x) という定義のはずですから、変えても意味ないと思います。問題は おそらくどこかが ruby 1.8.2 (2004-11-08) [x86_64-netbsd] ^^^^^^ に対応できていないんだと思います。x86_64では sizeof(unsigned long)は4でしたっけ8でしたっけ。 |pack("U")の方は1.9では起こらないようです。 こちらは修正できると思います。