文字列→数値
基本形 > "10".to_i => 10 整数とみなせない文字があればそこまでを変換対象とします。変換対象が空文字列であれば 0 を返します。 > "a".to_i => 0 基数の指定が可能(レシーバの文字列を基数の数値と解釈して返却する) > "10".to_i(2) => 2 > "10".to_i(16) => 16 > "0x10".to_i(0) => 16
数値→文字列
0 - 31 の制御文字の場合は表現できないので、16進数で表示されるみたい ord で戻せる
そのまま文字にする irb(main):068:0> 1.to_s => "1" irb(main):069:0> 01.to_s => "1" irb(main):070:0> 0x10.to_s => "16" > 10.to_s(16) => "a" エンコーディング irb(main):054:0> 1.chr => "\x01" irb(main):055:0> 65.chr => "A" irb(main):056:0> 65.chr.encoding => #<Encoding:US-ASCII> irb(main):057:0> 64.chr.encoding => #<Encoding:US-ASCII> irb(main):058:0> 64.chr => "@" irb(main):059:0> 63.chr => "?" irb(main):060:0> 48.chr => "0" irb(main):061:0> 31.chr => "\x1F" > 63.chr.ord => 63 > p 10.chr Encoding::ASCII_8BIT # 文字コード指定 "\n"
irb(main):080:0> "kkk".length => 3 irb(main):081:0> "\x12\x12".length => 2 > "\x65\x01\x41".chars => ["e", "\u0001", "A"] irb(main):085:0> "kkk".chars => ["k", "k", "k"] irb(main):086:0> "\x65".chars => ["e"] irb(main):087:0> "\x65\x01".chars => ["e", "\u0001"] irb(main):088:0> "\x65\x01\x64".chars => ["e", "\u0001", "d"] irb(main):089:0> "\x65\x01\x14".chars => ["e", "\u0001", "\u0014"] irb(main):090:0> "\x65\x01\x41".chars => ["e", "\u0001", "A"] irb(main):042:0> 10.chr => "\n" irb(main):043:0> 10.chr.ord => 10 irb(main):044:0> 10.chr.ord.chr => "\n" irb(main):045:0> 10.chr.ord.to_s => "10" irb(main):046:0> 10.chr.ord.to_s(16) => "a" irb(main):053:0> 121.chr => "y" irb(main):054:0> 0x79.chr => "y"