From: GOTOU Yuuzou Date: 2004-11-08T20:28:48+09:00 Subject: [ruby-dev:24748] "\000\000\000\001".unpack("N") returns [0] Ruby 1.8で、Ruby 1.9のtest/ruby/test_pack.rbを試すとエラーに なります。 % ruby18 -v test/ruby/test_pack.rb ruby 1.8.2 (2004-11-08) [x86_64-netbsd] Loaded suite test/ruby/test_pack Started ..FF Finished in 0.013177 seconds. 1) Failure: test_pack_U(TestPack) [test/ruby/test_pack.rb:47]: exception expected but was Class: Message: <"pack(U): value out of range"> ---Backtrace--- test/ruby/test_pack.rb:47:in `pack' test/ruby/test_pack.rb:47:in `test_pack_U' test/ruby/test_pack.rb:47:in `assert_raise' test/ruby/test_pack.rb:47:in `test_pack_U' --------------- 2) Failure: test_unpack_N(TestPack) [test/ruby/test_pack.rb:37]: <1> expected but was <0>. 4 tests, 17 assertions, 2 failures, 0 errors unpack("N")の方は、unsigned longをntohl()に渡す際に上位(右の 方)の桁が落ちています。ここはswaplだとまずいんでしょうか? pack("U")の方は1.9では起こらないようです。 -- ごとうゆうぞう