【JavaScript】10進数と16進数の相互変換と16進表記の方法

10進数を16進数に変換する方法と16進数を10進数に変換する方法を紹介します。また16進数を0x表記に変換する方法も紹介します。

目次

10進数を16進数に変換(decimal to hex)

NumberオブジェクトのtoString関数を用いることで、数値から16進文字列への変換が行えます。第一引数には基数16を指定します。

var i = 15
i.toString(16)          // "f"
(14).toString(16)       // "e"
Number(13).toString(16) // "d"

(254).toString(16)      // "fe"

16進数を10進数に変換(hex to decimal)

16進数の文字列を10進数の数値に変換するためにはparseInt関数を用います。第一引数に任意の変換文字列を指定し、第二引数に基数16を指定します。

parseInt("f", 16)    //  15
parseInt("F", 16)    //  15
parseInt("0xF", 16)  //  15
parseInt("-0Xf", 16) // -15

parseInt("fe", 16)   // 254

16進表記(0xFF)

専用の関数は用意されていないため、自前でフォーマットする必要があります。

var i = parseInt("fe", 16) // 254
var s = '0x' + i.toString(16).toUpperCase()
s // "0xFE"

必要に応じて、toUpperCase関数で大文字化しましょう。

16進変換用の関数を作っておくと便利です。以下の例はゼロ埋めにも対応しています。

function toHex(v) {
    return '0x' + (('0000' + v.toString(16).toUpperCase()).substr(-4));
}

広告