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

From: dezawa <dezawa@...>
Date: 2013-12-01 00:53:06 UTC
List: ruby-list #49709
出沢です

ソースみてみましたら、仕様みたいですね。
1.9.3もそうでした。 sprintf.c 206行

 *        x   | Convert argument as a hexadecimal number.
 *            | Negative numbers will be displayed as a two's complement
 *            | prefixed with `..f' (representing an infinite string of
 *            | leading 'ff's).

二桁余分に出して切り取る、、、、、
  ruby -e 'x=-2;printf "%06X\n",x'        => ..FFFE
  ruby -e 'x=-2;puts ("%06X\n"%x)[2..-1]' => FFFE

なんでこんな仕様になったのかなぁ。
対称性がないのが嫌ですね。

In This Thread