【JavaScript】16進数から2進数への0埋め変換方法とは

【JavaScript】16進数→2進数に0埋め変換する方法とは システムエンジニア

先日、仕事で少し詰まった箇所があったので、皆さんにもご紹介。

それは、JavaScriptでの16進数から2進数への0埋め変換ですね。

16進数→2進数に直接変換するようなメソッドが現在、JavaScritpには無いようです。

そのため、16進数→10進数→2進数という変換を行いますね。

これで16進数を2進数に変えることはできるのですが、0埋めされないので一工夫が必要になります。

スポンサーリンク

16進数→10進数の変換

まずは、16進数を10進数に変換しましょう。

そのためには、parseInt()を使用します。

// 16進数
const hex = 'F';

// 10進数に変換
const decimal = parseInt(hex, 16);

console.log(decimal);

// 実行結果
15

第一引数に変換したい値、第二引数にその進数を入れると、10進数に変換が可能です。

2進数や8進数でも同様に変換することが可能です。

スポンサーリンク

10進数→2進数の変換

次は10進数を2進数に変換しましょう。

この時はtoString()を使います。

toStringの引数に進数の値を入れることで、変換が可能です。

2進数以外にも、8進数や16進数でも同様に変換できますね。

16進数→2進数の変換

ここまでの手順を組み合わせると、16進数→2進数への変換が可能ですね。

ただし、これだけだと少し不十分な場合があります。

それは、冒頭でも言ったように、2進数を0埋めで表示したい時ですね。

2進数に変換しているのはあくまでも10進数の値なので、先頭の0は表示されません。

16進数→2進数の変換(0埋め)

さて、最後に0埋めの方法について確認しておきましょう。

これにはslice()を使います。

sliceは文字列の中の一部を抽出した時に使えるメソッドですね。

今回は16進数が2桁なので、「00000000」と10進数を2進数に変換した文字列を足しています。

そして、後ろから8文字を切り出せば、0埋めされた2進数を取得できるというわけですね。

16進数の桁数が事前に分からない場合は、以下のように変換処理をメソッド化するのも良いでしょう。

(もっと良い書き方がありそう・・・)

まとめ

さて、今回はJavaScriptで16進数→2進数に0埋め変換する方法についてお話ししてきました。

0埋めしたい時は基本的にはslice()を使えば解決できそうですね。

タイトルとURLをコピーしました