From: Tanaka Akira Date: 2007-07-15T09:47:44+09:00 Subject: [ruby-dev:31229] ~big_zero after big_zero % big_neg 以下のように、Bignum の 0 をビット演算の否定したときに 0 に なることがあります。 % ./ruby -ve ' big_neg = 0x40000000.coerce(-1)[0] big_zero = 0x40000000.coerce(0)[0] p big_zero % big_neg p ~big_zero' ruby 1.9.0 (2007-07-15 patchlevel 0) [i686-linux] 0 0 が、上記から p big_zero % big_neg を省くと、挙動が変わってそ うはならなくなります。 % ./ruby -ve ' big_neg = 0x40000000.coerce(-1)[0] big_zero = 0x40000000.coerce(0)[0] #p big_zero % big_neg p ~big_zero' ruby 1.9.0 (2007-07-15 patchlevel 0) [i686-linux] -1 -- [田中 哲][たなか あきら][Tanaka Akira]