はじめに
本記事では、10進数⇄2,3,4...16進数に変換表示してみる記事です。
「追記」
コメントにてご指摘いただきしたが、
正式には、
`to_iメソッド`によって10進数に変換されているのではなく、
10進数として表示されたということになります。
詳しくは、以下の記事を参考にしていただけますと幸いです。
Ruby の "1101".to_i(2) は 2 進数を 10 進数に変換している,わけじゃない
コード
こちらを参考にしています。
→Ruby リファレンスマニュアル
p 表示したい10進数の数字.to_s(表示したい○進数の○の部分を記述)
# "表示したい進数の数が表示"
p "表示したい○進数の数字".to_i(表示したい○進数の○の部分を記述)
# 10進数に表示した数が表示
10進数
でないと数値
と見なされません。→間違いです。
2進数など他
では文字列
で表現することになります。
[訂正]
10進数のほかに、2進,8進,16進の数値リテラルがあります。
本記事のコメント欄にて情報をいただいておりますのでご確認ください。
申し訳ございません。
以下、実際に2~16進数へ表示してみました。
p 255.to_s(2)
# "11111111"
p 255.to_s(3)
# "100110"
p 255.to_s(4)
# "3333"
p 255.to_s(5)
# "2010"
p 255.to_s(6)
# "1103"
p 255.to_s(7)
# "513"
p 255.to_s(8)
# "377"
p 255.to_s(9)
# "313"
p 255.to_s(10)
# "255"
p 255.to_s(11)
# "212"
p 255.to_s(12)
# "193"
p 255.to_s(13)
# "168"
p 255.to_s(14)
# "143"
p 255.to_s(15)
# "120"
p 255.to_s(16)
# "ff"
せっかくなんで、それらを10進数で表示します。
p "11111111".to_i(2)
# 255
p "100110".to_i(3)
# 255
p "3333".to_i(4)
# 255
p "2010".to_i(5)
# 255
p "1103".to_i(6)
# 255
p "513".to_i(7)
# 255
p "377".to_i(8)
# 255
p "313".to_i(9)
# 255
p "255".to_i(10)
# 255
p "212".to_i(11)
# 255
p "193".to_i(12)
# 255
p "168".to_i(13)
# 255
p "143".to_i(14)
# 255
p "120".to_i(15)
# 255
p "ff".to_i(16)
# 255
以上です。
終わりに
ITパスポートの勉強で、
2進数から10進数に変換する問題があったので、
rubyでできるのかなと思い、調べました。
余裕でできましたね。
明日も頑張ります!