10進数を16進数へ変換

乗り遅れまくりだけどd:id:hagaeru3sei:20090812に関連して。


VW

Transcript clear.
#(十 九 八 七 六 五 四 三 参 二 弐 一 壱) asSortedCollection do: [ :each |
	Transcript
		show: each, ' [';
		show: (each convertToByteArray inject: '' into: [:tmp :byte | tmp, ' ', (byte printStringRadix: 16)]);
		show: ']';
		cr
]


Squeak

Transcript clear.
#(十 九 八 七 六 五 四 三 参 二 弐 一 壱) asSortedCollection do: [ :each |
	Transcript
		show: each, ' [';
		show: (each asByteArray inject: '' into: [:tmp :byte | tmp, ' ', (byte printStringRadix: 16)]);
		show: ']';
		cr
]

16進数の時のゼロ埋めが、簡単にできそうになかった。

Perl

@list = qw(十 九 八 七 六 五 四 三 参 二 弐 一 壱);
foreach $buf (sort @list) {
	print $buf, " ";
	map {printf("%02X", $_);} unpack("CC", $buf);
	print "\n";
}


元ネタのソートオーダーに関しては、Smalltalk処理系2つについてはオーダーが同じ結果となったけど、SmalltalkPerlでは異なったり、結局よくわからない。