在 JavaScript 中,我有一个整数数组。我想将每个整数的十六进制值放入 Int8Array 并将这些值回显到控制台。
对于以下代码,控制台[8, 5, 4, 4, 7, 0, 0, 0, 0, 0]
会在我预期的时候回显[89,50,4E,47,...]
var data = [137,80,78,71]; // equals 0x89,0x50,0x4E,0x47
var hexValueArrayBuffer = new ArrayBuffer((data.length+1)*2);
var hexValueInt8Ary = new Int8Array(hexValueArrayBuffer);
var ixx=0;
for(var index in data){
var hexValue = data[index].toString(16);
hexValueInt8Ary.set(hexValue,ixx++);
console.log("Added "+hexValue);
if(ixx==data.length){
console.log(hexValueInt8Ary);
}
}
由此看来,似乎只添加了每个预期结果的第一个半字节。我能做些什么来获得预期的结果:
[89,50,4E,47,...]