10進数を16進数へ変換
乗り遅れまくりだけどd:id:hagaeru3sei:20090812に関連して。
Transcript clear. #(十 九 八 七 六 五 四 三 参 二 弐 一 壱) asSortedCollection do: [ :each | Transcript show: each, ' ['; show: (each convertToByteArray inject: '' into: [:tmp :byte | tmp, ' ', (byte printStringRadix: 16)]); show: ']'; cr ]
Transcript clear. #(十 九 八 七 六 五 四 三 参 二 弐 一 壱) asSortedCollection do: [ :each | Transcript show: each, ' ['; show: (each asByteArray inject: '' into: [:tmp :byte | tmp, ' ', (byte printStringRadix: 16)]); show: ']'; cr ]
16進数の時のゼロ埋めが、簡単にできそうになかった。
@list = qw(十 九 八 七 六 五 四 三 参 二 弐 一 壱); foreach $buf (sort @list) { print $buf, " "; map {printf("%02X", $_);} unpack("CC", $buf); print "\n"; }
元ネタのソートオーダーに関しては、Smalltalk処理系2つについてはオーダーが同じ結果となったけど、SmalltalkとPerlでは異なったり、結局よくわからない。