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