JavaScriptで2進数などを10進数に変換する方法まとめ

JavaScriptでは違う基数(2進数、16進、etc・・)を10進数に簡単に変換できます。

その方法とは parseInt  メソッドに基数で表された文字列と基数を渡して実行すること

 

例えば変換したいn進数の文字列 xxx  を10進数の値 dec  に変換したいなら

とすれば10進数変換された数値が取得可能。 普通だと parseInt  は文字列 ⇒ 数値の処理を行うために使われますが、基数付きで実行すれば基数同士の変換もできる便利ものです。

 

ここではこの parseInt  を使って2・8・16進数を10進数に変換するコード例をまとめてみました。

2進数を10進数に変換

2進数 ⇒ 10進数 への変換は parseInt  の第一引数に2進数文字列、第二引数に 2  を渡すだけ

例えば次が2進数文字列を10進数に変換・表示しているコード例

'10101010'  とか '11111111'  のように文字列で表したものが変換可能です。

ただし2進数文字列では 1 または 0 以外の文字は使えないことに要注意。そのため  '0b10101010'  とか '0o11111111'  みたいな文字列は正しい結果を返しません。

先頭に 0b  とか 0o  を付けられるのは数値として2進数を定義する場合だけです。

8進数を10進数に変換

8進数 ⇒ 10進数 なら parseInt  の第一引数に8進数文字列、第二引数に 8  を渡せばOK

例えば次は8進数から10進数に変換・表示しているコード例です。

上コードの '20'  とか '400'  とかが8進数表記された文字列。もし10進数と分かりにくい場合、最後の例の '0777'  みたいに先頭に   をつけても問題ありません。

16進数から10進数への変換

16進数 ⇒ 10進数 に変換したい場合は parseInt  の第一引数に16進数文字列、第二引数に 16  を渡せば10進数が返ってきます。

例えば次が16進数文字列を10進数に変換・表示しているコード例

16進数文字列 hex  を10進数変換してコンソール表示してます。ちなみにコメント内に書いたのが10進数に変換された値。

もし16進数文字列が10進数と区別しにくい場合は '0x100'  とか '0x800'  みたいに先頭に 0x  を付けた形でも問題ありません。

ここまでのまとめ

ここまでで紹介した変換方法をまとめると次の通り

  • 2進数から10進数への変換
    parseInt の第一引数に '11111111'  みたいな2進数文字列、第二引数に 2  を渡す
  • 8進数から10進数への変換
    parseInt の第一引数に '0777'  みたいな8進数文字列、第二引数に 8  を渡す
  • 16進数から10進数への変換
    parseInt の第一引数に '0x800'  みたいな16進数文字列、第二引数に 16  を渡す

以上JavaScriptで色々な基数(特に2・8・16進数)を10進数に変換する方法についてでした。

補足 : 10進数から2・8・16進数への変換も可

parseIntメソッドとは逆にある方法を使うと

  • 10進数 ⇒ 2進数
  • 10進数 ⇒ 8進数
  • 10進数 ⇒ 16進数

のように変換することも可能です。

 

その方法とは次でまとめたようににtoStringメソッドを使うこと

上記事では変換方法に加えてコード例なんかもいくつか紹介したので、10進数 ⇒ n進数 に変換が必要なら是非こちらもご覧ください。