From: WATANABE Tetsuya Date: 2000-10-19T14:23:09+09:00 Subject: [ruby-dev:11267] [BUG] 1.6.2 pack N 渡辺哲也です。 intel Linux で pack の 'N' がうまく動作しませ ん。BIGENDIAN 系のシステムではこの現象は起き ていません(HP-UX で確認)。 ruby 1.6.2 (2000-10-18) [i686-linux] 次のように 32bit でマイナスの値だとエラーにな ります。 irb(main):001:0> [0xaabbccdd].pack('N') RangeError: bignum too big to convert into `int' (irb):1:in `pack' (irb):1:in `irb_binding' 以下確認したものです。 irb(main):005:0> [0x01020304].pack('N') "\001\002\003\004" irb(main):006:0> [0x81020304].pack('N') RangeError: bignum too big to convert into `int' (irb):6:in `pack' (irb):6:in `irb_binding' irb(main):007:0> [0x81020304].pack('i') "\004\003\002\201" irb(main):008:0> [0x81020304].pack('I') "\004\003\002\201" irb(main):010:0> [0x81020304].pack('N') RangeError: bignum too big to convert into `int' (irb):10:in `pack' (irb):10:in `irb_binding' -- WATANABE Tetsuya e-mail: Tetsuya_WATANABE@hp.com tetsu@jpn.hp.com