LoginSignup
0
0

More than 1 year has passed since last update.

[Ruby]10進数⇄2,3,4...16進数に表示してみる(追記・訂正あり)

Last updated at Posted at 2021-10-14

はじめに

本記事では、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でできるのかなと思い、調べました。
余裕でできましたね。

明日も頑張ります!

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0