Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save yoggy/8aa43c6140583cf79301 to your computer and use it in GitHub Desktop.
Save yoggy/8aa43c6140583cf79301 to your computer and use it in GitHub Desktop.

久しぶりにRubyを使って'I'のASCIIコードを調べるメモ

$ irb
irb(main):001:0> RUBY_VERSION
=> "1.9.3"

irb(main):002:0> "I"[0]
=> "I"     ← あれ?1.8の時はこれで文字コード取得できなかったっけ?
             (1.8の時は[]の戻り値はIntegerだったけど、1.9からStringに変更されている)

irb(main):003:0> "I"[0].chr
=> "I"     ← なんか違う?
             (1.8の時はInteger#chrで文字列に戻るが、
             1.9以降はString#chrは一文字目を返すメソッドなのでそのまま動いてしまう)

irb(main):004:0> "I".to_i
=> 0       ← そりゃそうだ

irb(main):005:0> "I".to_c
=> (0+1i)  ← 複素数がかえってきてびっくり。String#to_cってあるのか

irb(main):006:0> "I".ord
=> 73      ← ようやくきたこれ

irb(main):007:0> "I"[0].ord.to_s(16)
=> "49"    ← ようやく見慣れた16進数がきた

まとめてならこっち?

$ irb
irb(main):011:0> "ABCD".unpack("H*")
=> ["41424344"]

irb(main):012:0> ["41424344"].pack("H*")
=> "ABCD"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment