Javascript でダンプ出力するコード

16進数でデータ内容をダンプしたい時に使う関数です。
本関数のリターン値にはダンプ文字列が入ります。主にデバッグ用途となるでしょう。

第一引数はデータ。第二引数は先頭から何バイトを出力対象とするかの指定です。

function hexDump(data, length) {
 var dumpLength = length || data.length; // length が渡されていなかったらデフォルト
 var outputString = "";
 var addressPadding = "0000000";
 var line = 0;
 var countForCurrentLine = 0;

 outputString +=
  "Address:  00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f \n" +
  "---------------------------------------------------------\n" +
  "00000000  ";

 for (var i = 0; i < dumpLength; i++) {
  countForCurrentLine++;
  var byteData = data.substr(i, 1);

  var number = data.charCodeAt(i) & 0xff;
  var byteHex = (number < 16) ? "0" + number.toString(16) : number.toString(16);
  ;

  outputString += byteHex + " ";
  if (countForCurrentLine == 16) {
   countForCurrentLine = 0;
   line++;
   outputString += "\n" + addressPadding.substr(0, 7 - line.toString(16).length) + line.toString(16) + "0  ";
  }
 }
 return outputString;
}

 

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