我需要获取一个填充有有效 32 位有符号整数的标准 JavaScript 数组,并将其转换为 UInt8Array
。例如,考虑以下标准 JavaScript 数组:
[255, 3498766, -99]
我希望生成的 UInt8Array
包含这些数字的有符号 32 位表示形式:
255 = [0x00, 0x00, 0x00, 0xFF]
3498766 = [0x00, 0x35, 0x63, 0x0E]
-99 = [0xFF, 0xFF, 0xFF, 0x9D]
因此,给定输入 [255, 3498766, -99]
,结果将是:
[0x00, 0x00, 0x00, 0xFF, 0x00, 0x35, 0x63, 0x0E, 0xFF, 0xFF, 0xFF, 0x9D]
我可以想到简单的方法来实现这一点,但我正在寻找尽可能直接的转换。
最佳答案
a = [255, 3498766, -99]
b = new Uint8Array(Int32Array.from(a).buffer)
console.log(b)
结果将采用平台字节顺序,即当今大多数处理器上的 LE。如果您确实想要像示例中那样使用大端字节序,则需要对 DataView.getInt32
进行一些额外的修改(有关详细信息,请参阅 here)。
关于javascript - 将非类型化 32 位整数数组转换为 UInt8Array 的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39947765/