まつもと ゆきひろです

In message "[ruby-dev:16543] Re: sprintf("%u")"
    on 02/03/23, Koji Arai <JCA02266 / nifty.ne.jp> writes:

|2の補数表現で最上位ビットが無限に続く数値に対して符号無し整
|数を要求するというのば、利用者の意図は引数を固定長の整数とし
|てみなしたいのだと想像します。
|
|なので、安易に Ruby の内部表現のサイズの整数を符号無しにして
|しまえばと思ったのです。はっきりいって現状でそういう出力をし
|てますよね。(".."が頭につくことを除けば)
|
|幸い内部表現のサイズは size メソッドで公開してますし、あまり
|抵抗は感じないなと思ったのです。
|
|  n = -10 ** 10
|  p "%u" % n
|  p "%d" % (n & ~(-1 << (n.size*8)))
|
|  => "..18446744063709551616"
|     "18446744063709551616"
|
|まあ、そもそも %u なんていらないという説もありそうですが。

納得したので取り込みます。ただし、-wで警告を出すようにしよう
と思います。