[ruby-list:49719] Re: sprintfフォーマットについて
From:
dezawa <dezawa@...>
Date:
2013-12-01 06:21:21 UTC
List:
ruby-list #49719
ありがとうございます、 この記法はrubyだけでしょうか、それとも規格になっているのでしょうか。 (2013年12月01日 13:41), U.Nakamura wrote: > こんにちは、なかむら(う)です。 > > 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が無限に続くことを示す > .. を付加しています。 # "%04x" と「2byte幅で書け」と指示しているのだから # それで良いようにも思うのです。 # 4文字固定幅で欄を用意しているような時のために、 # "%!04x" みたいな 「修飾したら .. なし」 にならないですかね。 > (二進表記(%b)、八進表記(%o)でも同様なのでご確認あれ) はい、そのように書いてありました、