1

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

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

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

4

2 回答 2

1

这会将两个字节(每个 8 位)转换为整数

function Two8bitBytestoOneInteger(byteHighBits,byteLowBits){
   return  ( byteHighBits.charCodeAt(0) << 8 ) | ( byteLowBits.charCodeAt(0) & 0xFF ) ;
}

提示: 如果您尝试打印字节(即console.log(byteHighBits)),您会收到一个错误NaN(不是数字),因此要查看字节整数值,请执行此操作( console.log(byteHighBits.charCodeAt(0) )

希望这可以帮助!

于 2013-02-08T00:38:19.363 回答
1

在支持 Typed Arrays 的较新浏览器中,您可以发出 XHR 请求,并将responseType请求参数设置为"arraybuffer". 然后响应将是一个ArrayBuffer对象,您可以将其传递给Int32Array构造函数。

于 2012-12-17T10:24:20.950 回答