進数変換
メモ。
Bashで行う方法。zshでもできるらしいけど試して無いので不明。
% echo $((0x12)) 18
rubyで行う方法。
10進数->10進数
あんまり意味はないけどこれが基本。
p Integer("100") #=> 100 p "100".to_i #=> 100
2進数->10進数
p Integer("0b00010111") #=> 23 p "00010111".to_i(2) #=> 23
10進数->2進数
p 23.to_s(2) #=>"10111" printf("%b %#b", 23) #=>"10111 0b10111"
8進数->10進数
p Integer("0123") #=> 83 p "123".to_i(8) #=> 83 p "123".oct #=> 83
10進数->8進数
p 83.to_s(2) #=>"123" printf("%o %#o", 83) #=>"123 0123"
16進数->10進数
p Integer("0xFFF1") #=> 65521 p "FFF1".to_i(16) #=> 65521 p FFF1".hex #=> 65521
10進数->16進数
p 83.to_s(16) #=>"fff1" printf("%x %#x", 83) #=>"ff1 0xfff1"