String#%は書式制御
RubyのString#%メソッドは、レシーバをprintf的書式制御文字列として扱います。
以下の例では、0〜31の数値を10進数、16進数、2進数で表示します。
(0..31).to_a.each do |k| puts "%5d %5X %5b" % [k, k, k] end
実行結果です。
0 0 0 1 1 1 2 2 10 3 3 11 4 4 100 5 5 101 6 6 110 7 7 111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 16 10 10000 17 11 10001 18 12 10010 19 13 10011 20 14 10100 21 15 10101 22 16 10110 23 17 10111 24 18 11000 25 19 11001 26 1A 11010 27 1B 11011 28 1C 11100 29 1D 11101 30 1E 11110 31 1F 11111