[Javascript] 数値データの進数変換

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

javascriptでバイナリ操作を行う時に2進数や16進数を扱ったり、相互に変換する必要があるので、javascriptで操作できるようにしてみた。

まずはググる

Google

javascript 進数変換

検索結果

2進数・16進数・10進数-JavaScript入門
parseInt() – JavaScript | MDN – Mozilla Developer Network
ビット演算子 – JavaScript | MDN
JavaScriptプログラミング講座【数値について(Number)】
JavaScript で n 進数を扱う: Days on the Moon

親切書いていただいているサイトが沢山ヒットしました。

10進数を他の進数に変換

どうやら「parseInt」と「toString」を組み合わせる事で進数変換ができる事がわかった。
ルールは下記の通りだ

1. parseIntで元進数を定義
2. toStringで変換後進数を指定

簡単なのだが、何故かparseIntを使わないと10進数でNGが出るのが何故か今のところ理解出来ていないが、とりあえずお作法として覚えておこう。

parseIntを使うことで進数を確定するというような意味なのかもしれないね。

2進数,8進数,16進数→10進数

10進数に変換するのは、parseIntの役割だったんですね。
なれていないとtoStringを使っちゃいそうでなんだかヤヤこいよ。

ヤヤこくしないために関数作ってみる

面倒くさがり屋の下駄としては、こういう場合は関数を使って以後ネイティブ関数とはおさらばするという手段を取りたい。

概要

decimal.convertという関数を作り、元値、元進数、変換後進数を指定することで値を返せばいい。
ただし、指定が間違っている場合はエラーを返すようにしなければならない。
エラー対象としては、元進数と元値が間違っている場合だ。
例えば、3という数字を2進数と指定するとエラーという事。

ソース

実行サンプル

1. 10進数の”111”を16進数に変換する。
※16進数の英字は大文字に変換しています。

2. 2進数の”0111″を10進数に変換

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です