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;
}

