gpt4 book ai didi

javascript - 将两个 JS uint8 数组连接到 uint16 数组的最快方法?

转载 作者:行者123 更新时间:2023-11-29 18:21:39 26 4
gpt4 key购买 nike

我知道这在其他语言中相当容易,但是如果我有两个 8 位无符号整数数组,并且想将它们连接到一个 16 位无符号整数数组,那么在 JS 中执行此操作的最佳方法是什么?

最佳答案

假设两个数组 具有相同的长度,使用forbitwise left shift operator << 循环;

var arr8A = [2, 3, 4], // example
arr8B = [5, 6, 7];
// code start
var arr16 = new Uint16Array(arr8A.length),
i;
for (i = 0; i < arr8A.length; ++i)
arr16[i] = (arr8A[i] << 8) + arr8B[i];
arr16;

相反的是相似的,但你使用 bitwise zero-fill right shift operator >>> bitwise AND operator & ;

// arr16 as above
var arr8A = new Uint8Array(arr16.length),
arr8B = new Uint8Array(arr16.length),
i;
for (i = 0; i < arr16.length; ++i) {
arr8A[i] = arr16[i] >>> 8;
arr8B[i] = arr16[i] & 255;
}
console.log(arr8A, arr8B);

您可以安全地使用这些运算符的最大数字是 32 位整数

关于javascript - 将两个 JS uint8 数组连接到 uint16 数组的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18058263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com