小塚と申します。
  >> [ruby-list:34003] Bignum と負の Fixnum の bit 和について
の件ではお世話になりました。再び、Bignum関連(!?)で妙な挙動を
見つけた様なので報告させていただきます。

再現プログラム
(ここから)
  x = [-2147483649, -3221225473, -3758096385]
  x.each do
    | y |
    z = y + 2
    4.times do |i|
      printf "%12d: %b\n", z, z
      z -= 1
    end
    puts
  end
(ここまで)

を実行すると

(ここから)
 -2147483647: ..10000000000000000000000000000001
 -2147483648: ..10000000000000000000000000000000
 -2147483649: ..1
 -2147483650: ..10

 -3221225471: ..1000000000000000000000000000001
 -3221225472: ..1000000000000000000000000000000
 -3221225473: ..1
 -3221225474: ..10

 -3758096383: ..100000000000000000000000000001
 -3758096384: ..100000000000000000000000000000
 -3758096385: ..1
 -3758096386: ..10
(ここまで)

てな具合に -2147483649以下の数値を表示する部分に問題が有る様です。
10進(%d)は問題ないのですが、2進(%b), 8進(%o), 16進(%x)で
表示させようとすると困った事になります。また、暫くすると
再び巻き戻された様になってしまいます。
因みに私が手元に控えた問題のある数値は

 -2147483649, -3221225473, -3758096385, -4026531841,
 -4160749569, -4227858433, -4261412865, -4278190081,
 -4286578689, -4290772993, -4292870145, -4293918721,

付近までで(まだ続く..)、各々の数値の差が

 1073741824 (0x40000000)
  536870912 (0x20000000)
  268435456 (0x10000000)
  134217728 (0x08000000)
   67108864 (0x04000000)
   33554432 (0x02000000)
   16777216 (0x01000000)
    8388608 (0x00800000)
    4194304 (0x00400000)
    2097152 (0x00200000)
    1048576 (0x00100000)

となっている為、ある程度の規則性規則性があります。。

● 試した環境
・Kondara MNU/Linux 2.1付属の物 (ruby-1.6.5-12k)
    ruby 1.6.5 (2001-09-19) [i586-linux]

・「4月  4 19:00」付けの
 ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz からbuild
    ruby 1.6.7 (2002-04-04) [i686-linux]

・「4月  4 19:00」付けの
 ftp://ftp.ruby-lang.org/pub/ruby/snapshot.tar.gz からbuild
    ruby 1.7.2 (2002-04-04) [i686-linux]

以上の3っ共、同じ様に表示されました。1.6.5でも昨日付けの物でも
同じ様に表示される事から暫く前に修正していただいた「2の補数を取るルーチン」
とは関係ないのかなと勝手に推測しております。