【JavaScript】数値を16進数表記の文字列に変換

javascript

JavaScript初心者が数値を16進数表記の文字列に変換する方法を記載します。

数値から16進文字列への変換。

var i = 15;
var s=i.toString(16)   ;
// sは"f"になります。
var i = 255;
var s=i.toString(16) ;
// sは"ff"になります。

数値から16進文字列への変換。(ゼロ埋め)

//【内容】数値を16進数表記の文字列に変換する。
//【引数】d=数値
//    s=フォーマット情報 "00"/"0000"
function toHex(num,fm) {
  //数値を16進数表記の文字列に変換
  var s=num.toString(16);
  //引数チェック
  if(fm==undefined) return s;
  //16進数表記の文字列に桁数を求める
  var dLen=s.toString(16).length;
  //ゼロ埋め
  s= Array(fm.length-dLen+1).join('0')+s;
  return  s;
}

6行目:数値を16進数表記の文字列に変換。

11行目:引数のフォーマット情報の有無を検査し、フォーマット指定が無いときはゼロ埋めせず、値を返してます。

15行目:指定フォーマット情報に足りない桁数ゼロ埋めを実行してます。
Arrayの使い方については、下記サイトを参考にさせて頂きました。

s0=toHex(15);s0には”f”は代入されます。
s1=toHex(15,"00");s1には”ff”は代入されます。
s2=toHex(255,"00");s2には”ff”は代入されます。
s3=toHex(255,"0000");s3には”00ff”は代入されます。
s4=toHex(255,"000000");s4には”0000ff”は代入されます。

コメント