[ruby-list:49718] Re: sprintfフォーマットについて

From: "U.Nakamura" <usa@...>
Date: 2013-12-01 04:41:23 UTC
List: ruby-list #49718
こんにちは、なかむら(う)です。

In message "[ruby-list:49709] Re: sprintfフォーマットについて"
    on Dec.01,2013 09:53:06, <dezawa@aliadne.net> wrote:
> なんでこんな仕様になったのかなぁ。

Rubyの整数は無限長幅だから、というのが理由です。

-1という数値を2の補数形式で表現した場合、幅が
  8bit:  0xFF
  16bit: 0xFFFF
  32bit: 0xFFFFFFFF
  64bit: 0xFFFFFFFFFFFFFFFF
  (以下略)
となるわけですが、無限長幅だとFが無限に続いてしまうわけです。
というわけで、現在のRubyでは、このような場合、意図を表現でき
る最短部分までを十六進表記し、その前にFが無限に続くことを示す
.. を付加しています。
(二進表記(%b)、八進表記(%o)でも同様なのでご確認あれ)


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>

In This Thread