2014-01-25 4 views
1

나는이 배열라는 데이터가 나는 헥스에서 파일을 검사하는 경우 진수 문자열의 바이트의 가치가 거기에 각 인덱스에,이JS의 16 진수 문자열

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

처럼 보인다 편집자 나는 그 순서를 볼 것으로 예상해야한다. 따라서 메모리 주소 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(); 
} 
+0

귀하의 질문에이 사람이, 당신이 정말로 필요합니까 이해 많은 것들을 내가 파일에 기록 할 바이트의 –

+0

배열에게 도움이되지 않습니다 그래서 파일 말했다 다운로드 할 수 있습니다. – MatUtter

+0

두 번째 코드 스 니펫이 있습니다 ... – MatUtter

답변

1

당신은 접두사가없는 문자열로 일부 진수 번호를 가지고, 당신은 파일에 바이트로 작성합니다. 현재 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)) 
+0

이것은 전혀 도움이되지 않습니다. 대답은 어떤 종류의 URI 데이터 인코딩이 될 것입니다 .... – MatUtter

+0

내 업데이트 된 답변보기 –

+0

이것은 여전히 ​​바이트 수준의 파일 쓰기와 관련이 없습니다. 귀하의 모든 예제는 문자열을 다른 문자열로 바꾸는 것입니다. – MatUtter