来自网络服务器我收到一个由N个整数组成的大字节数组(带符号16位,小端),我想在javascript中构建一个整数数组。
当然,我可以迭代传入的数组并推入每个字节。这样做没有问题。
我想知道是否有更方便的方法来填充数组。例如,在C中,我可以设置一个指向第一个字节的整数指针,然后访问所有其他字节。或者更好的我可以将malloc和memcpy缓冲区域保存到保留空间。在这两种情况下,我都不必迭代源数组。
答案 0 :(得分:1)
在支持Typed Arrays的较新浏览器中,您可以使用responseType
请求参数set to "arraybuffer"
发出XHR请求。然后,响应将是ArrayBuffer
对象,您可以将其传递给Int32Array
构造函数。
答案 1 :(得分:1)
这会将两个字节(每个8位)转换为整数
function Two8bitBytestoOneInteger(byteHighBits,byteLowBits){
return ( byteHighBits.charCodeAt(0) << 8 ) | ( byteLowBits.charCodeAt(0) & 0xFF ) ;
}
提示:
如果您尝试打印字节(即console.log(byteHighBits)
),则会收到错误NaN
(不是数字),因此要查看字节整数值,请执行此操作( console.log(byteHighBits.charCodeAt(0) )
希望这有帮助!