即时将字节数组转换为整数数组

时间:2012-12-17 09:45:29

标签: javascript arrays

来自网络服务器我收到一个由N个整数组成的大字节数组(带符号16位,小端),我想在javascript中构建一个整数数组。

当然,我可以迭代传入的数组并推入每个字节。这样做没有问题。

我想知道是否有更方便的方法来填充数组。例如,在C中,我可以设置一个指向第一个字节的整数指针,然后访问所有其他字节。或者更好的我可以将malloc和memcpy缓冲区域保存到保留空间。在这两种情况下,我都不必迭代源数组。

2 个答案:

答案 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) )

希望这有帮助!