Gauche > Archives > 2015/10/28

2015/10/28 08:42:07 UTCnatsutan
#
こんんちは。
#
いきなりしくった。こんにちは><。
#
負の整数を16進で2の補数の文字列にする方法は無いでしょうか?
#
(use slib)
(require 'printf) 
(printf "%x\n" -1)
これで、ffffffffが表示されるとうれしいのですが、なかなか楽な方法を見つけられませんでした。
2015/10/28 08:45:14 UTCshiro
#
桁数がわかってればlogandで切っちゃうのが楽です
#
gosh> (number->string (logand #xffffffff -5) 16)
"fffffffb"
2015/10/28 08:46:10 UTCnatsutan
#
ありがとうございます。
#
(めちゃ早かった)
2015/10/28 08:51:08 UTCshiro
#
ついでに、最近入れた機能の宣伝。たくさん桁がある時はこんなふうに書けます。
gosh> #x1234_5678_90ab_cdef
1311768467294899695
数値プレフィクス (#x, #d, #eなど) がある時のみ有効。
2015/10/28 08:56:31 UTCnatsutan
#
ふむふむ
2015/10/28 16:03:34 UTCkaki
#
なるほど、数値プレフィクスを要求することで互換性を保って桁区切りを入れられるんですね。これは嬉しい。