[ruby-list:49726] Re: sprintfフォーマットについて
From:
dezawa <dezawa@...>
Date:
2013-12-01 10:13:15 UTC
List:
ruby-list #49726
出沢です そうか、rubyのInteger って Fixnum ではなく Bignum も含むんでしたね。 x,o,bで出力するときって、bitパターンを知るというのが目的となることが普通 です。(私の場合は) その時のイメージは Fixnum なのです。 ですから、 この数値は何Byteある。と知っている(つもり)なので、必要な桁だけ出す。 つもりが違うよ って教えてくれるために 足りなければ指定数以上必要なだけ出 す。というつもりでした。 しかし ruby の場合はFixnumではなくIntegerだから何桁が必要なのかと言うの は決まらない。だから [ruby-list:49711]遠藤さんの >もしくはマスクでも。 > > "%04x" % (x & 0xffff) #=> "fffe" が正しい姿のような気がしてきました。スマートで無いのが辛いですが。 ですから これを "%!04x" 記法で実装するのだとしたら、 > "%!04x" % -2 が "fffe" を返すということは、 > 「常に下 4 桁だけを持ってくる」と考えるのが自然だと思いました。 > だとすれば 0x10000 に対しても同様に下 4 桁だけを持ってくるべきかと。 なのでしょうね。