[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 桁だけを持ってくるべきかと。

なのでしょうね。


In This Thread