1

私はデータと呼ばれるこの配列を持っており、各インデックスには1バイト分の16進文字列があり、次のようになります

var data = new Array("0A", "31", "55", "AA", "FF")

16進エディタでファイルを検査すると、そのシーケンスが表示されるはずです。では、メモリ アドレス 0x00000000 で始まる値が 16 進数値のシーケンスになるようにファイルを書きたい場合、どうすればよいでしょうか?

現在、このコードでダウンロード可能なファイルを作成しています。

function download(filename, text) {
   var file = document.createElement('a');
   file.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
   file.setAttribute('download', filename);
   file.click();
}
4

1 に答える 1

1

プレフィックスのない文字列として 16 進数を取得し、それらをバイトとしてファイルに書き込みたいとします。現在、JavaScript にはバイト実装がないため、各バイトを対応する char に変換してから、ファイルに書き込む必要があります。

var data = new Array("0A", "31", "55", "AA", "FF"), file = "";

//turn hex string to number, then convert it to string and append to file
file += data.map(hex => String.fromCharCode(+("0x"+hex))).join("")

//byte file back to hex array
data = file.split("").map(ch => ("0"+ch.charCodeAt(0).toString(16).toUpperCase()).slice(-2))
于 2014-01-25T22:49:38.083 に答える